Wikifunctions wikifunctionswiki https://www.wikifunctions.org/wiki/Wikifunctions:Main_Page MediaWiki 1.47.0-wmf.7 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 Wikifunctions:Project chat 4 1184 285694 285305 2026-06-22T17:22:34Z Hogü-456 617 /* Wikifunctions & Abstract Wikipedia Newsletter #253 is out: The or not the, this is (the?) question */ Reply 285694 wikitext text/x-wiki {{shortcut|[[WF:CHAT]]|[[WF:PC]]|[[WF:VP]]}} __NEWSECTIONLINK__ [[Category:Help]] <!-- please do not remove this line --> Welcome to the Project chat, a place to discuss any and all aspects of Wikifunctions: the project itself, policy and proposals, individual data items, technical issues, etc. Other places to find help: * [[Wikifunctions:Administrators' noticeboard]] * [[Wikifunctions:Report a technical problem]] * [[Wikifunctions:FAQ]] {{Autoarchive resolved section |age = 1 |archive = ((FULLPAGENAME))/Archive/((year))/((month:##)) |timeout=30 }} {{Archives|{{#tag:div|<br />{{Flatlist|{{Special:PrefixIndex/WF:Project chat/Archive/|stripprefix=1|hideredirects=1}} |class=mw-collapsible-content|style=font-size:92%;}}|class="mw-collapsible mw-collapsible-toggle mw-collapsed"}} |prefix=WF:Project chat/Archive/ }} == [[Z35298]] == Does anyone know what the problem with this implementation is? [[User:JJPMaster|JJP]]<sub>[[User talk:JJPMaster|Mas]]<sub>[[Special:Contributions/JJPMaster|ter]]</sub></sub> ([[wikt:she|she]]/[[wikt:they|they]]) 21:14, 18 May 2026 (UTC) :There is a bug that doesn't allow Python implementation to return nested lists. [[User:Dv103|Dv103]] ([[User talk:Dv103|talk]]) 05:31, 19 May 2026 (UTC) ::Is there a Phabricator task for this? Searching through them is hell. &mdash; [[User:Theki|rae<sup>5e</sup>]] &lt;[[User talk:Theki|talk]]&gt; 03:22, 20 May 2026 (UTC) :::A bit of time ago I opened [[phab:T392750]], which is very similar to this issue. [[User:Dv103|Dv103]] ([[User talk:Dv103|talk]]) 05:26, 20 May 2026 (UTC) ::I don’t think there is a general problem with returning nested lists. There is a problem with not taking into account the declared type for a nested list, which is an issue only for types with custom conversion. There is an equivalent issue on the input side, applicable to all “generic types” that are nested, including typed lists: [[:phab:T417266]]. [[User:GrounderUK|GrounderUK]] ([[User talk:GrounderUK|talk]]) 11:39, 16 June 2026 (UTC) == How to handle items without lexemes == NLG functions relay heavily on the presence of lexemes associated to items on Wikidata. But we know that not all the Wikidata items have an associated lexeme. There are multiple reasons why an item does not have an associated lexeme, like: # The lexeme has not been created yet # The item represents a place # The item represents a person # The item represents a specific concept that can only be expressed by a specific combination of words that cannot be [[Wikidata:Wikidata:Lexicographical data/Notability|notable]] (like {{Q|Q61220733}}). My doubt is: what should we do with this fourth category? For many languages, just using the Wikidata item label is not possible, since it is necessary to conjugate the words or to retrieve grammatical information like the gender. What should we do? [[User:Dv103|Dv103]] ([[User talk:Dv103|talk]]) 16:09, 23 May 2026 (UTC) :In that particular example, I think the thing to do is read its {{P|279}}: {{Q|21191270}}, then have some kind of heuristic based on that which says to take its {{P|8345}} and attach that Item's label to a Form of the word for "episode". In general, synthesising Lexemes for proper nouns is one of the problems that [[abstract:User:Dv103/Abstract_articles_architectures|proposals in your list here]] will have to address. [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 22:59, 23 May 2026 (UTC) [[File:Wikidata content 2024.svg|thumb|Content of Wikidata by type]] ::{{ping|Dv103}} very good point. ::For your point 2, it depends of the place but I think that quite often a lexeme can be created (most "Administrative territorial entity", most geographical entity, etc.). And with 3, your can add a lot of types (see pie chart) : Scholarly article, Human (with a very few exception), Wikimedia Category, Disambig, etc. which is (rough estimation) 2/3 of Wikidata items. ::A common rule (in dictionaries since forever and in Lexemes) is to not create an entry which is the "sum of its part". In this case, "Star Trek episode" is just episode + Star Trek, nothing more than its part. So logically, as {{U|YoshiRulz}} said, when no corresponding lexeme is found, the item should be decomposed the same way, the hard part is to know how to decompose it as the property will vary ; P31 and P279 are an obvious start but beyond that, I'm not sure we could find a general solution. ::PS: it's beyond you question but there is also the reverse problem, how to select one lexeme when multiple are linked to the same item... ::Cheers, [[User:VIGNERON|VIGNERON]] ([[User talk:VIGNERON|talk]]) 10:43, 24 May 2026 (UTC) :::For the point 2, I think humans will be used way more than scholarly articles and disambiguations in NLG functions (outside references), that's why humans concern me more (still a cool pie chart, though). :::For the reverse problem, there is already {{Z|Z27327}}: it's far from perfect, but usually makes a decent choice. Obviously it is not "complete", and probably it will never be complete, but it will have to be progressively improved by the community. And probably in the future we will need to create similar functions to select the best lexeme in more specific cases. :::For my fourth point, I didn't think about the decomposition, but it is something that could be done with another never-complete community-mantained function, that progressively keeps being improved. If [[Wikifunctions:Type proposals/Semantic unit|semantic units]] will be implemented, through them it could actually be possible to do this operation in a laguage-independent way. [[User:Dv103|Dv103]] ([[User talk:Dv103|talk]]) 12:10, 24 May 2026 (UTC) ::{{re|YoshiRulz}} Proper noun synthesis, along with other fallbacks for realizing the names of concepts that don't have lexemes, is merely a step within the overall abstract content rendering process and is not inherently tied to the process itself; having the ability to [https://gitlab.com/mahir256/ninai/-/blob/main/ninai/graph/client.py#L327 run any number of fallback mechanisms], instead of a raw call to (the equivalent of) Z27327, should be possible with any of the methods listed on the architectures page. [[User:Mahir256|Mahir256]] ([[User talk:Mahir256|talk]]) 16:41, 24 May 2026 (UTC) == 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 --> :The new <code>return_type</code> param to [[Special:ListObjectsByType]] will show Functions returning e.g. {{Z|27951}} and {{Z|882}} if those are typed in manually, but the dropdown menu doesn't offer them, probably because it's a copy of the dropdown above (and there are no Persistent objects of those Types). [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 10:12, 26 May 2026 (UTC) ::@[[User:YoshiRulz|YoshiRulz]]: Correct, it's filtering for Types, which includes "real" enums like [https://www.wikifunctions.org/wiki/Special:ListObjectsByType?type=Z8&return_type=Z20342&orderby=name Day of Roman year (Z20342)]; light-weight enums have downsides as well as upsides, of which this is one. :-( [[User:Jdforrester (WMF)|Jdforrester (WMF)]] ([[User talk:Jdforrester (WMF)|talk]]) 14:39, 1 June 2026 (UTC) :::I assume you mean {{Z|17402}}, since {{Z|20342}} is not an enumeration type? But I never mentioned enums: My hypothesis is that a Type appears in the dropdown iff there is a Persistent object of that type (<code>Z2K2.Z1K1</code>). Whereas I would expect a Type to appear in the dropdown iff there are any Functions which return objects of that type (<code>Z2K2.Z8K2</code>). Or just show every Type in the return type dropdown, since [[Special:ListObjectsByType/Z39|you already have a "no results" message]]. [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 16:53, 1 June 2026 (UTC) ::::@[[User:YoshiRulz|YoshiRulz]]: Yes, you are correct, the concept of a Type here means "there is a Persistent object of that type". Other things (in practice, light-weight enums like Z27951) aren't Types. [[User:Jdforrester (WMF)|Jdforrester (WMF)]] ([[User talk:Jdforrester (WMF)|talk]]) 16:57, 1 June 2026 (UTC) == Type documentation template == Over the past couple of weeks, I've been developing and rolling out {{t|type documentation}}: a standardised layout for Type metadata, de/constructors, conversions, etc. on each Type's talk page. (The layout is loosely based on [[d:Template:Property documentation|Wikidata's]].) See [[Talk:Z16683|Integer]] for an example that uses most of its features, and [[Talk:Z99|Quote]] for one that doesn't.<br>At this point I can't think of anything more to add besides [[Help:Comparison_function_table/float64|filling out]] a couple more [[Help:Type_conversion_table/Codepoint|tables]]. But if any of you have ideas or feedback, please click through to the relevant talk page and leave me a message. [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 12:29, 26 May 2026 (UTC) :I really like what you're doing here. Thank you. --[[User:99of9|99of9]] ([[User talk:99of9|talk]]) 13:26, 26 May 2026 (UTC) :Yeah, nice work! I don’t think “Function declarations” is the best header for the collapsed table of searches by function signature, however. Now that it’s finally landed, we should probably include https://www.wikifunctions.org/wiki/Special:ListObjectsByType?type=Z8&return_type=Z16683 as well (outside the table). [[User:GrounderUK|GrounderUK]] ([[User talk:GrounderUK|talk]]) 16:23, 26 May 2026 (UTC) == Apparent error in implementations of {{Z|20616}} == Please can I request help in how to understand a bug? Sorry if this is not the best place to ask. I created lexemes [[d:Lexeme:L1566135|langue morte L1566135]] in French and [[d:Lexeme:L1566139|lengua muerta L1566139]] in Spanish, with property {{P|5185}} set to {{Q|Q1775415}} in each case. {{Z|20616}} should return a list of the grammatical genders of a given lexeme. It has two implementations, {{Z|Z20641}} and {{Z|Z21127}}, each of which works perfectly in the French case, returning a list containing Q1775415. But in the Spanish case, each of the two implementations wrongly returns an empty list. I cannot understand what is going wrong. How can I find out what is happening here? I would be grateful for any help or advice. [[User:Strobilomyces|Strobilomyces]] ([[User talk:Strobilomyces|talk]]) 13:56, 26 May 2026 (UTC) :Both implementations return [https://www.wikifunctions.org/wiki/Z20616?call=%7B%22Z1K1%22%3A%22Z7%22%2C%22Z7K1%22%3A%22Z20616%22%2C%22Z20616K1%22%3A%7B%22Z1K1%22%3A%22Z7%22%2C%22Z7K1%22%3A%22Z6825%22%2C%22Z6825K1%22%3A%7B%22Z1K1%22%3A%22Z6095%22%2C%22Z6095K1%22%3A%22L1566139%22%7D%7D%7D the same result]. As you added the gender only yesterday, I suppose it must have still been looking at a cached version of the lexeme from before that edit. [[User:GrounderUK|GrounderUK]] ([[User talk:GrounderUK|talk]]) 16:06, 26 May 2026 (UTC) ::Thank you for answering. Yes, it works now. I thought it might have been something like that, but I waited more than 12 hours before testing it again today. I think that whenever SPARQL is in use, there will be caching issues, and it is a very bad problem. Is there any way of clearing the cache, or knowing when the cache will next be cleared, or how long it is necessary to wait before the changes come through? [[User:Strobilomyces|Strobilomyces]] ([[User talk:Strobilomyces|talk]]) 18:59, 26 May 2026 (UTC) :::Well, it depends on the cache. “Wikidata entities in the orchestrator cache timeout after 24 hours” [https://t.me/Wikifunctions/28369 according to] @[[User:DMartin (WMF)|DMartin (WMF)]]. There is currently no way to clear that. I don’t think we have a handy guide to the different caches in operation, but the “general” function-call cache should be reset for a particular function when that function is edited. [[User:GrounderUK|GrounderUK]] ([[User talk:GrounderUK|talk]]) 22:05, 26 May 2026 (UTC) ::::I think this is very unfortunate for anyone doing tests in Wikifunctions. So there is a 24-hour delay even applying to changes in Wikidata due to the Wikifunctions orchestrator cache, apart from any other caches such as the SPARQL one. I notice that an intermediate-level call using the [[d:Lexeme:L1566139|lengua muerta L1566139]] lexeme change, {{Z|33725}}, now works on "latín es una lengua muerta.", but the top-level call {{Z|26039}} still does not find the correct gender. If I test the function every 12 hours, does that mean that the erroneous result will be produced for ever, because it will always take the bad value less than 24 hours old from the cache? [[User:Strobilomyces|Strobilomyces]] ([[User talk:Strobilomyces|talk]]) 13:45, 27 May 2026 (UTC) :::::I can only sympathize. :::::It seems to me that [https://www.wikifunctions.org/wiki/Z26039?call=%7B%22Z1K1%22%3A%22Z7%22%2C%22Z7K1%22%3A%22Z26039%22%2C%22Z26039K1%22%3A%7B%22Z1K1%22%3A%22Z6091%22%2C%22Z6091K1%22%3A%22Q397%22%7D%2C%22Z26039K2%22%3A%7B%22Z1K1%22%3A%22Z6091%22%2C%22Z6091K1%22%3A%22Q45762%22%7D%2C%22Z26039K3%22%3A%22Z1003%22%7D this has been correct] for a couple of days. But in the general case, no, repeated use of cached results does not re-start the clock. That would indeed be most unfortunate! [[User:GrounderUK|GrounderUK]] ([[User talk:GrounderUK|talk]]) 13:59, 27 May 2026 (UTC) ::::::It still doesn't work for me, it says "latín es un lengua muerta." But the test on the top-level implementation page, {{Z|33725}}, does work now. By the way, really it should say "el latín es una lengua muerta.", but that is another issue. Anyway, thanks a lot for your help. [[User:Strobilomyces|Strobilomyces]] ([[User talk:Strobilomyces|talk]]) 14:06, 27 May 2026 (UTC) :::::::Ah, yes… my mistake, sorry. :::::::It should be [https://www.wikifunctions.org/view/en/Z26039?call=%7B%22Z1K1%22%3A%22Z7%22%2C%22Z7K1%22%3A%22Z26039%22%2C%22Z26039K1%22%3A%7B%22Z1K1%22%3A%22Z6091%22%2C%22Z6091K1%22%3A%22Q397%22%7D%2C%22Z26039K2%22%3A%7B%22Z1K1%22%3A%22Z6091%22%2C%22Z6091K1%22%3A%22Q45762%22%7D%2C%22Z26039K3%22%3A%22Z1003%22%7D consistent now]. The “couple of days” is the clue here; we were getting a result from the function-call cache and this has now been refreshed by my edit. [[User:GrounderUK|GrounderUK]] ([[User talk:GrounderUK|talk]]) 14:25, 27 May 2026 (UTC) ::::::::Yes, it all works now. Thanks. [[User:Strobilomyces|Strobilomyces]] ([[User talk:Strobilomyces|talk]]) 14:54, 27 May 2026 (UTC) == Vote now in the 2026 U4C election == <section begin="announcement-content" /> Eligible voters are asked to participate in the 2026 [[m:Special:MyLanguage/Universal_Code_of_Conduct/Coordinating_Committee|Universal Code of Conduct Coordinating Committee]] election. More information–including an eligibility check, voting process information, candidate information, and a link to the vote–are available on Meta at the [[m:Special:MyLanguage/Universal_Code_of_Conduct/Coordinating_Committee/Election/2026|2026 Election information page]]. The vote closes on 2 June 2026 at [https://zonestamp.toolforge.org/1780358400 00:00 UTC]. Please vote if your account is eligible. Results will be available by 14 June 2026. -- In cooperation with the U4C,<section end="announcement-content" /> [[m:User:Keegan (WMF)|Keegan (WMF)]] ([[m:User talk:Keegan (WMF)|talk]]) 17:14, 27 May 2026 (UTC) <!-- Message sent by User:Keegan (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=30513860 --> == [[Z35880]] == The code of this implementation is adapted directly from [https://github.com/sutton-signwriting/core/blob/master/src/swu/swu-re.js]. I'm not sure why this function only works for "null" and "sort". Every other input causes the function to return [[Z577]]. Does anyone know what could be going on here? [[User:JJPMaster|JJP]]<sub>[[User talk:JJPMaster|Mas]]<sub>[[Special:Contributions/JJPMaster|ter]]</sub></sub> ([[wikt:she|she]]/[[wikt:they|they]]) 21:47, 30 May 2026 (UTC) :Could you creade testcases showing this? [[User:Dv103|Dv103]] ([[User talk:Dv103|talk]]) 21:55, 30 May 2026 (UTC) ::I determined that this problem was due to a problem with UTF encoding, and it has since been resolved. [[User:JJPMaster|JJP]]<sub>[[User talk:JJPMaster|Mas]]<sub>[[Special:Contributions/JJPMaster|ter]]</sub></sub> ([[wikt:she|she]]/[[wikt:they|they]]) 18:11, 31 May 2026 (UTC) == Continued WASI runner problems == I've continued to experience {{z|576}} on {{z|35904}}, despite [[phab:T419933|the purported fix]]. See {{z|35945}}. [[User:JJPMaster|JJP]]<sub>[[User talk:JJPMaster|Mas]]<sub>[[Special:Contributions/JJPMaster|ter]]</sub></sub> ([[wikt:she|she]]/[[wikt:they|they]]) 18:29, 31 May 2026 (UTC) :A possibly related issue while trying to add more rows in these articles : :1. https://abstract.wikipedia.org/view/en/Q16038495 :2. https://abstract.wikipedia.org/view/en/Q13581178 :So, I stopped at 2 rows. [[User:Jsamwrites|John Samuel]] 20:40, 31 May 2026 (UTC) == 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 --> == Questions on a simple fragment example "The Eiffel Tower is a monument" == Hello. I would like to be able to use the function {{Z|Z26039}} to generate sentences like "the Eiffel Tower is a monument" or "la torre Eiffel es un monumento" in Spanish. It already raises a lot of questions. Question 1: I should be able to set the first input "entity" to {{Q|Q243}} and the second input "class" to {{Q|Q4989906}} and get the correct sentence, shouldn't I? Just checking. Question 2: {{Z|Z26039}} calls a language-specific function like "Spanish article-less instantiating sentence" {{Z|Z26337}}, which uses the label of the Wikidata item to get the text for "Eiffel Tower", which is similar to the lemma of the lexeme. But this would not be acceptable in production, would it? The item label "belongs" to all Wikidata users, not to Abstract Wikipedia users, and there is no guarantee what it might contain, such as a parenthesis for disambiguation. Or am I wrong? Question 3a: We need to have a lexeme for the combination "Eiffel Tower" in each language, don't we? For instance in languages with gender, the lexeme is the only place to find the gender. It is true that if we know that the equivalent of "Tower" is the head word, syntactical information can be found under the lexeme for "tower", and it would be good to use a system like that. But the only place that the syntactic dependency information could be located is under the lexeme. Question 3b: At present for {{Z|Z26039}} etc. to work, we have to add any forms or syntax information to the lexeme of the whole phrase, such as "Eiffel Tower". But property {{Q|P5238}} with attributes {{Q|P9763}} and {{Q|P9764}} can be used to define the structure and avoid duplicating the syntax information. What lexeme would be used for "Eiffel" in this case? Would it be the same as a lexeme for {{Q|Q20882}}? That makes no sense to me. I propose that there should be a dummy lexeme in each language which could be added to {{Q|P5238}} instead of a real lexeme to mean "invariant element". Question 4: As has already been pointed out elsewhere, the fragment functions do not work well with the initial definite article in languages like English, Spanish and German. Examples: * "'''The Eiffel Tower is a monument.'''" The item label "Eiffel Tower" omits the article and so the result omits the initial "The" in English. French, Spanish and German are similar. * "'''The Sun is a star.'''" Similarly the article is wrongly omitted, also in French, Spanish and German. * "'''Westminster Abbey is a monument.'''" This is OK in English and German as no article is needed, but not in French or Spanish where it is, for instance "La Abadía de Westminster es un monumento". * "'''Latin is a dead language.'''" Also this is OK in English and German but not in French or Spanish, where an article is needed. * "'''Jupiter is a planet.'''". This does not need an article and is OK in all the languages; I include this to show that you cannot assume that there is an article in all cases in French and Spanish. How should the language functions find out whether an article is needed? In some cases, where the lemma is a phrase like "Abadía de Westminster" in Spanish, I think that it could be deduced, but in general there is no rule to give the answer. Using different rendering functions according to the case is '''not''' a solution, although it might work for a few specific languages like these four. It would not be acceptable because there will be many, many other cases of syntactical choices to be made for all the different languages, and we cannot expect the person writing the abstract code to take them all into account. So I suppose that a declaration in the lexeme is needed to solve this problem. I suppose that there must already be linguistic terminology for this problem, but I don't know it. I would be grateful for any comments on any of these questions. [[User:Strobilomyces|Strobilomyces]] ([[User talk:Strobilomyces|talk]]) 15:02, 5 June 2026 (UTC) :@[[User:Strobilomyces|Strobilomyces]] I think this topic is better placed at [[abstract:Abstract Wikipedia:Project chat|Abstract Wikipedia:Project chat]], so I copied your topic there, and answered it there too. [[User:HenkvD|HenkvD]] ([[User talk:HenkvD|talk]]) 22:07, 8 June 2026 (UTC) ::OK, sorry about that. [[User:Strobilomyces|Strobilomyces]] ([[User talk:Strobilomyces|talk]]) 17:03, 9 June 2026 (UTC) :1. Yes. :2. It depends on the language, but it is no bad thing if the subject of the sentence recapitulates the article title, ideally shorn of disambiguators. The difficulty is that item labels and article titles are simply text, so there is no guarantee that they can be parsed sufficiently well in any given language. :3a. Conceptually, this is true, but we must assume that it won’t happen. That means we have to construct the lexeme for any given language, and this will be discussed at the [[Wikifunctions:NLG SIG#Upcoming meeting]] on Tuesday. In the special case where the item’s linguistic form is consistently some kind of modified head noun, it may be appropriate to capture this as a qualified {{Q|P279}} relationship (the Eiffel Tower is classed as a monument but named as a tower, for example). :3b. It’s complicated, yes, but I believe all this needs to be considered as part of the above mentioned lexeme-construction process. :4. Yes, this is a stubborn problem, being partly context and partly custom. In English, the general rule is that names resist determiners. That implies the need to distinguish names from other proper nouns. “Mercury” is a name but “sun” and “moon” are ordinary nouns made proper by the definite article (although, exceptionally, this may be elided for “the Earth”, presumably influenced by the Sun’s other planets having names). More generally, as has been noted, the rules vary by language, so the distinction must be made at that level. The general rule for a particular language would typically apply according to the item’s class (country, language, construction…) but per-language exceptions are a case for lexicographic properties (because they are details exposed by Wikifunctions but required more generally, like the fact that, even when abbreviated, “the USA” and “the UK” require the definite article, whereas most countries have names that resist it). [[User:GrounderUK|GrounderUK]] ([[User talk:GrounderUK|talk]]) 10:46, 14 June 2026 (UTC) ::See also [[Wikifunctions:Status updates/2026-06-19#The or not the, this is (the?) question]]. [[User:HenkvD|HenkvD]] ([[User talk:HenkvD|talk]]) [[User:HenkvD|HenkvD]] ([[User talk:HenkvD|talk]]) 11:38, 19 June 2026 (UTC) == Deployment of Legal and Safety Contacts Link in the Footer of Your Wiki == Hello community, The Wikimedia Foundation has provided [[wmf:Legal:Wikimedia Foundation Legal and Safety Contact Information|a single legal and safety contact page]], to be linked in the footer of your wiki, to ensure access to accurate legal information. This is a regulatory requirement. We have already rolled out links to English, German, Italian, Spanish Wikipedias and other wikis and we will deploy to your wiki soon. Please [[m:Wikimedia Foundation Legal and Safety Contacts FAQ|read more on the project page]] and leave any comments in this thread or on [[m:Talk:Wikimedia Foundation Legal and Safety Contacts FAQ|the talk page]]. –– [[User:STei (WMF)|STei (WMF)]] ([[User talk:STei (WMF)|talk]]) 17:54, 9 June 2026 (UTC) :[https://translatewiki.net/w/i.php?title=Special%3ATranslate&showMessage=wikimedia-legal-safety-contacts&group=ext-wikimediamessages&language=qqq&filter=&optional=1&action=translate example text] at translatewiki.net [[User:Arlo Barnes|Arlo Barnes]] ([[User talk:Arlo Barnes|talk]]) 19:32, 19 June 2026 (UTC) == Apache License 2.0 == Hello, Wikifunctions says it uses the Apache 2.0 license for code. Apache 2.0 is incompatible with GPLv2 only and some other licenses, and I would like to be able to use Wikifunctions with software that uses incompatible licenses with Apache 2.0. Is there any plans to fix this incompatibility or relicense Wikifunctions code? Thanks! [[User:A random Wikipedian in the billions|A random Wikipedian in the billions]] ([[User talk:A random Wikipedian in the billions|talk]]) 11:49, 12 June 2026 (UTC) :@[[User:A random Wikipedian in the billions|A random Wikipedian in the billions]]: No. The licence was picked very carefully based on the way it needs to integrate with other systems, principally Wikipedias and Wikidata. Changing the licence would ba a major, breaking undertaking. [[User:Jdforrester (WMF)|Jdforrester (WMF)]] ([[User talk:Jdforrester (WMF)|talk]]) 11:52, 12 June 2026 (UTC) :Just out of curiousity: what software would you like to use it with? [[User:Feeglgeef|Feeglgeef]] ([[User talk:Feeglgeef|talk]]) 23:19, 12 June 2026 (UTC) == 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 --> == June 2026 Wikimedia Café meetups regarding the English Wikipedia Editor Reflections project == <div class="border-box" style="background-color: var(--background-color-warning-subtle, #f8eaba); max-width: 875px; padding: 5px; border: 1px solid black; margin: 5px; color: var(--clr-dark)"> <div class="box" style="float:left; padding-top: 10px; padding-right: 10px; padding-left: 10px; padding-bottom: 10px;">[[File:Wikimedia Café logo in plain SVG format.svg|60px|alt=The logo for the Wikimedia Café]]</div> Hello! There will be two '''[https://meta.wikimedia.org/wiki/Wikimedia_Caf%C3%A9 Wikimedia Café]''' discussion opportunities during the last weekend of June. Both sessions will focus on the [https://en.wikipedia.org/wiki/Wikipedia:Editor_reflections English Wikipedia Editor Reflections project]. The featured guest in the Café will be [https://en.wikipedia.org/wiki/User:Clovermoss User:Clovermoss]. Participants may attend either or both sessions. #'''27 June 2026 15:00 UTC''' ([https://zonestamp.toolforge.org/1782572400 timestamp converter]), at a time friendly to the Americas, Africa, and Europe #'''28 June 2026 03:00 UTC''' ([https://zonestamp.toolforge.org/1782615600 timestamp converter]), at a time friendly to Asia and the Pacific Please see the Café page for more information, including [https://meta.wikimedia.org/wiki/Wikimedia_Caf%C3%A9#How_to_attend_the_session how to register]! <br /> [[File:Buntstifte Eberhard Faber crop 64h.jpg|860px|alt=cropped image of colored pencils]]</div> <span style="white-space:nowrap;">[[User:Pine|<span style="color:#01796f; text-shadow:#00BFFF 0 0 1.0em">↠Pine</span>]] [[User talk:Pine|<span style="color:DeepSkyBlue">(<b style="color:#FFDF00;text-shadow:#FFDF00 0 0 1.0em">✉</b>)</span>]]</span> 03:55, 15 June 2026 (UTC) == I did something stupid, can I undo it? == Hello, I created a function (Z36415) I thought it would be in my user namespace because I put a prefix in the name. However, putting prefixes in the name didn't work for functions and I created it globally. Is there any way to rename it or remove it?. [[User:A random Wikipedian in the billions|A random Wikipedian in the billions]] ([[User talk:A random Wikipedian in the billions|talk]]) 12:08, 15 June 2026 (UTC) :[[WF:RFD]] please. {{Z|10119}} is available if you need to do testing. [[User:Feeglgeef|Feeglgeef]] ([[User talk:Feeglgeef|talk]]) 12:10, 15 June 2026 (UTC) ::Thanks! [[User:A random Wikipedian in the billions|A random Wikipedian in the billions]] ([[User talk:A random Wikipedian in the billions|talk]]) 12:17, 15 June 2026 (UTC) == 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 --> :<blockquote>We also have two Functions, {{Z|Z32645}} and {{Z|Z32935}}, which both aim to answer whether an Item needs a definite article or not [...] but neither of these seem to be integrated into the ways that Functions are actually used on Abstract Wikipedia, as can be seen ''e.g.'' on [[abstract:Q243|the article for the Eiffel Tower]].</blockquote> One of the connected Implementations uses it for the subject and location, and the other uses it for the location only. There was no heuristic in [[Z32645]] for buildings, so I added [[Z36580|a new Implementation]] with an extra branch, but even my optimised [[Z36556|subclass checks for buildings]] are timing out. [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 05:03, 20 June 2026 (UTC) ::I am not familiar with english rules for it. In German I am not able to explain a rule working every time about how to decide if an article is needed before a noun or not. So I think it is a case where it is better to look at such cases and then let a user with knwoledge in the language decide what is the correct function for a specific language. From my point of view it can be helpful to modify the functions to make a user based modification afterwards easier. This can be maybe done through optional arguments what give the possibility to modify specific forms if necessary without the necessity to fill it out every time a function is used. From my point of view the question raised in the newsletter shows how important the check of the output through an language speaker with an advanced level of understanding is. Languages can include complicated rules or exemptions what are necessary to pay attention and hard to implement in code without deep knwoledge of an language. At the moment I prefer language specific large functions generating whole sections of articles. As it seems to me difficult to implement the edge cases of every language in the language specific fragment functions. [[User:Hogü-456|Hogü-456]] ([[User talk:Hogü-456|talk]]) 20:11, 21 June 2026 (UTC) :::Did you mean to reply to me? Letting those <q>with [knowledge] in the language decide what is the correct function for a specific language</q> is exactly what the current prototypes do. The functions I linked to are English-specific.<br>The multilingual function can't take a "use definite article" parameter for obvious reasons, and if you want the language-specific functions to take extra parameters like that, the multilingual function would then need to derive the correct values to be able to call them. Might as well keep that logic within the language-specific functions. [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 20:34, 21 June 2026 (UTC) ::::If I reply here with the modern discussion form I have not seen when I wrote the message how to change it to not reply to you when I want to add the section below your reply. What I wrote have been general thoughts about the topic. I think it should be possible to write functions with optional arguments. The modification of the article is language specific and so such a thing would modify the language specific function. What you wrote about calling them from the multilingual function is important. I hope it will be possible to find a solution for it without the need of adding all function arguments. [[User:Hogü-456|Hogü-456]] ([[User talk:Hogü-456|talk]]) 17:22, 22 June 2026 (UTC) 6a1s7vj9tchqrat2aqse7g3a7xzkqit Z12317 0 18876 285821 120989 2026-06-23T02:48:08Z 99of9 1622 285821 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z12317" }, "Z2K2": { "Z1K1": "Z14", "Z14K1": "Z12316", "Z14K3": { "Z1K1": "Z16", "Z16K1": "Z600", "Z16K2": "function Z12316( Z12316K1, Z12316K2, Z12316K3, Z12316K4 ) {\n\treturn Z12316K3.replace(RegExp(Z12316K1, Z12316K4), Z12316K2);\n}" } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Javascript Regular expression substitute" }, { "Z1K1": "Z11", "Z11K1": "Z1014", "Z11K2": "Ihe ngbanwe Javascript oge niile" }, { "Z1K1": "Z11", "Z11K1": "Z1430", "Z11K2": "regulären Ausdruck mit Flags ersetzen in JavaScript" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } o8c2eowisjmnmbr11ynvm2umu6o9gjs Z19261 0 41195 285713 138831 2026-06-22T18:03:13Z Ameisenigel 44 de 285713 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z19261" }, "Z2K2": { "Z1K1": "Z14", "Z14K1": "Z19260", "Z14K2": { "Z1K1": "Z7", "Z7K1": "Z19254", "Z19254K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z6004K3" }, "Z803K2": { "Z1K1": "Z7", "Z7K1": "Z811", "Z811K1": { "Z1K1": "Z7", "Z7K1": "Z19243", "Z19243K1": { "Z1K1": "Z18", "Z18K1": "Z19260K1" }, "Z19243K2": [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q146786" } ] } } } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "plural form of lexeme, composition" }, { "Z1K1": "Z11", "Z11K1": "Z1430", "Z11K2": "Plural von Lexem als einsp. Text, Komposition" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } q1apgjvpgcoqpbed74wdchfrpoyfyam Z19262 0 41196 285716 133334 2026-06-22T18:03:40Z Ameisenigel 44 de 285716 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z19262" }, "Z2K2": { "Z1K1": "Z20", "Z20K1": "Z19260", "Z20K2": { "Z1K1": "Z7", "Z7K1": "Z19260", "Z19260K1": { "Z1K1": "Z7", "Z7K1": "Z6825", "Z6825K1": { "Z1K1": "Z6095", "Z6095K1": "L1122" } } }, "Z20K3": { "Z1K1": "Z7", "Z7K1": "Z14392", "Z14392K2": { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "dogs" } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "plural of L-en \"dog\" is \"dogs\"" }, { "Z1K1": "Z11", "Z11K1": "Z1430", "Z11K2": "Plural von dog ist dogs" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } 0k6oandy550dsjzr4fgh9yk2l25vlec Z19263 0 41197 285717 133336 2026-06-22T18:04:32Z Ameisenigel 44 de 285717 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z19263" }, "Z2K2": { "Z1K1": "Z20", "Z20K1": "Z19260", "Z20K2": { "Z1K1": "Z7", "Z7K1": "Z19260", "Z19260K1": { "Z1K1": "Z7", "Z7K1": "Z6825", "Z6825K1": { "Z1K1": "Z6095", "Z6095K1": "L230374" } } }, "Z20K3": { "Z1K1": "Z7", "Z7K1": "Z14392", "Z14392K2": { "Z1K1": "Z11", "Z11K1": "Z1003", "Z11K2": "amigos" } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "first plural of L-es \"amigo\" is \"amigos\"" }, { "Z1K1": "Z11", "Z11K1": "Z1430", "Z11K2": "Plural von amigo ist amigos" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "\"amigas\" is also listed, but this function only returns one (the first)" }, { "Z1K1": "Z11", "Z11K1": "Z1430", "Z11K2": "amigas ist ebenfalls ein Plural, aber nicht der erste" } ] } } tqrdqs2l4ns0r3qn6ij5h134b1mcr98 Z19264 0 41198 285720 133337 2026-06-22T18:05:28Z Ameisenigel 44 de 285720 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z19264" }, "Z2K2": { "Z1K1": "Z20", "Z20K1": "Z19232", "Z20K2": { "Z1K1": "Z7", "Z7K1": "Z19232", "Z19232K1": { "Z1K1": "Z7", "Z7K1": "Z6825", "Z6825K1": { "Z1K1": "Z6095", "Z6095K1": "L230374" } } }, "Z20K3": { "Z1K1": "Z7", "Z7K1": "Z13522", "Z13522K2": { "Z1K1": "Z13518", "Z13518K1": "4" } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "L-es \"amigo\" has four forms" }, { "Z1K1": "Z11", "Z11K1": "Z1430", "Z11K2": "amigo hat vier Formen" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "masculine and feminine each have a singular and plural" }, { "Z1K1": "Z11", "Z11K1": "Z1430", "Z11K2": "maskulin und feminin haben jeweils Singular und Plural" } ] } } gg7t933hppsvr0vlhiz5om8b3jmylkd Z19265 0 41199 285721 158852 2026-06-22T18:07:06Z Ameisenigel 44 de 285721 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z19265" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z6005", "Z17K2": "Z19265K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "lexeme" }, { "Z1K1": "Z11", "Z11K1": "Z1672", "Z11K2": "詞位" }, { "Z1K1": "Z11", "Z11K1": "Z1004", "Z11K2": "lexème" }, { "Z1K1": "Z11", "Z11K1": "Z1430", "Z11K2": "Lexem" } ] } } ], "Z8K2": "Z13518", "Z8K3": [ "Z20", "Z19270" ], "Z8K4": [ "Z14", "Z19266", "Z19284" ], "Z8K5": "Z19265" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Count lexeme senses in lexeme" }, { "Z1K1": "Z11", "Z11K1": "Z1672", "Z11K2": "計算詞位中的詞位意義" }, { "Z1K1": "Z11", "Z11K1": "Z1004", "Z11K2": "compter les sens du lexème dans un lexème" }, { "Z1K1": "Z11", "Z11K1": "Z1430", "Z11K2": "zähle Lexembedeutungen in Lexem" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Return the number of lexeme senses in the given lexeme" }, { "Z1K1": "Z11", "Z11K1": "Z1672", "Z11K2": "回傳指定詞位中的詞位意義數量" }, { "Z1K1": "Z11", "Z11K1": "Z1004", "Z11K2": "renvoie le nombre de sens du lexème dans un lexème donné" }, { "Z1K1": "Z11", "Z11K1": "Z1430", "Z11K2": "gibt die Anzahl von Lexembedeutungen des angegebenen Lexems aus" } ] } } alm4cqn1dwhff7pbulrkumnabdp0pr4 285728 285721 2026-06-22T18:10:07Z WikiLambda system 3 Updated the implementation list (see [[Help:Wikifunctions/Implementation_ordering_and_choosing|About implementation selection]]) 285728 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z19265" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z6005", "Z17K2": "Z19265K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "lexeme" }, { "Z1K1": "Z11", "Z11K1": "Z1672", "Z11K2": "詞位" }, { "Z1K1": "Z11", "Z11K1": "Z1004", "Z11K2": "lexème" }, { "Z1K1": "Z11", "Z11K1": "Z1430", "Z11K2": "Lexem" } ] } } ], "Z8K2": "Z13518", "Z8K3": [ "Z20", "Z19270" ], "Z8K4": [ "Z14", "Z19284", "Z19266" ], "Z8K5": "Z19265" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Count lexeme senses in lexeme" }, { "Z1K1": "Z11", "Z11K1": "Z1672", "Z11K2": "計算詞位中的詞位意義" }, { "Z1K1": "Z11", "Z11K1": "Z1004", "Z11K2": "compter les sens du lexème dans un lexème" }, { "Z1K1": "Z11", "Z11K1": "Z1430", "Z11K2": "zähle Lexembedeutungen in Lexem" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Return the number of lexeme senses in the given lexeme" }, { "Z1K1": "Z11", "Z11K1": "Z1672", "Z11K2": "回傳指定詞位中的詞位意義數量" }, { "Z1K1": "Z11", "Z11K1": "Z1004", "Z11K2": "renvoie le nombre de sens du lexème dans un lexème donné" }, { "Z1K1": "Z11", "Z11K1": "Z1430", "Z11K2": "gibt die Anzahl von Lexembedeutungen des angegebenen Lexems aus" } ] } } obtu20f8ghwmew2djr7itbmdxtloug0 Z19266 0 41200 285722 158850 2026-06-22T18:07:55Z Ameisenigel 44 de 285722 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z19266" }, "Z2K2": { "Z1K1": "Z14", "Z14K1": "Z19265", "Z14K3": { "Z1K1": "Z16", "Z16K1": "Z600", "Z16K2": "function Z19265( Z19265K1 ) {\n\tlet count = 0;\n\tconst senses = Z19265K1.Z6005K6;\n for ( const sense of senses ) {\n \tcount = count + 1\n }\n return count;\n}" } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Javascript implementation of lexeme senses count" }, { "Z1K1": "Z11", "Z11K1": "Z1672", "Z11K2": "詞位意義計數的JavaScript實作" }, { "Z1K1": "Z11", "Z11K1": "Z1004", "Z11K2": "compter les sens du lexème dans un lexème, JavaScr" }, { "Z1K1": "Z11", "Z11K1": "Z1430", "Z11K2": "zähle Lexembedeutungen in Lexem in JavaScript" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Javascript implementation of lexeme senses count in a lexeme" }, { "Z1K1": "Z11", "Z11K1": "Z1672", "Z11K2": "計算詞位中詞位意義數量的JavaScript實作" }, { "Z1K1": "Z11", "Z11K1": "Z1430", "Z11K2": "JavaScript-Implementierung zur Zählung von Lexembedeutungen eines Lexems" } ] } } 20qqo33dty1kmedy0d7y57s2g0oehdg Z19267 0 41201 285723 284057 2026-06-22T18:08:38Z Ameisenigel 44 de 285723 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z19267" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z6092", "Z17K2": "Z19267K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "this Wikidata property reference" }, { "Z1K1": "Z11", "Z11K1": "Z1672", "Z11K2": "此維基數據屬性參照" }, { "Z1K1": "Z11", "Z11K1": "Z1787", "Z11K2": "primo riferimento" }, { "Z1K1": "Z11", "Z11K1": "Z1011", "Z11K2": "একটি বৈশিষ্ট্য উল্লেখ" }, { "Z1K1": "Z11", "Z11K1": "Z1430", "Z11K2": "erste Wikidata-Eigenschaft-Referenz" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z6092", "Z17K2": "Z19267K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "that Wikidata property reference" }, { "Z1K1": "Z11", "Z11K1": "Z1672", "Z11K2": "另一個維基數據參照" }, { "Z1K1": "Z11", "Z11K1": "Z1787", "Z11K2": "secondo riferimento" }, { "Z1K1": "Z11", "Z11K1": "Z1011", "Z11K2": "আরেকটি বৈশিষ্ট্য উল্লেখ" }, { "Z1K1": "Z11", "Z11K1": "Z1430", "Z11K2": "zweite Wikidata-Eigenschaft-Referenz" } ] } } ], "Z8K2": "Z40", "Z8K3": [ "Z20", "Z19269", "Z22225" ], "Z8K4": [ "Z14", "Z19268", "Z20049" ], "Z8K5": "Z19267" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "same Wikidata property reference" }, { "Z1K1": "Z11", "Z11K1": "Z1672", "Z11K2": "相同的維基數據屬性參照" }, { "Z1K1": "Z11", "Z11K1": "Z1787", "Z11K2": "stesso Riferimento a proprietà Wikidata" }, { "Z1K1": "Z11", "Z11K1": "Z1011", "Z11K2": "উইকিউপাত্ত বৈশিষ্ট্য উল্লেখ সমতা" }, { "Z1K1": "Z11", "Z11K1": "Z1078", "Z11K2": "referensi properti Wikidata yang sama" }, { "Z1K1": "Z11", "Z11K1": "Z1430", "Z11K2": "gleiche Wikidata-Eigenschaft-Referenz" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31", { "Z1K1": "Z31", "Z31K1": "Z1002", "Z31K2": [ "Z6", "equality of Wikidata property references", "Wikidata property references equal", "equal", "=", "property equality", "equal Wikidata property references", "==PID" ] }, { "Z1K1": "Z31", "Z31K1": "Z1360", "Z31K2": [ "Z6", "==Z6092", "==Z6092.Z6092K1" ] }, { "Z1K1": "Z31", "Z31K1": "Z1787", "Z31K2": [ "Z6", "uguaglianza tra riferimenti a proprietà Wikidata", "riferimenti a proprietà Wikidata uguali", "stesso PID", "PID uguali", "stessi PID" ] }, { "Z1K1": "Z31", "Z31K1": "Z1011", "Z31K2": [ "Z6", "একই উইকিউপাত্ত বৈশিষ্ট্য উল্লেখ", "সমান উইকিউপাত্ত বৈশিষ্ট্য উল্লেখ" ] }, { "Z1K1": "Z31", "Z31K1": "Z1078", "Z31K2": [ "Z6", "==PID" ] } ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1011", "Z11K2": "সত্য প্রদান করবে যদি দুটি উইকিউপাত্ত বৈশিষ্ট্য উল্লেখ একই হয়।" }, { "Z1K1": "Z11", "Z11K1": "Z1078", "Z11K2": "kondisi di mana dua atau lebih pernyataan (klaim) di Wikidata didukung oleh sumber rujukan yang sama pada properti tertentu" } ] } } avyn8asyvfiw0wq3bx5skd1oi140ogw 285724 285723 2026-06-22T18:08:42Z WikiLambda system 3 Updated the implementation list (see [[Help:Wikifunctions/Implementation_ordering_and_choosing|About implementation selection]]) 285724 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z19267" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z6092", "Z17K2": "Z19267K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "this Wikidata property reference" }, { "Z1K1": "Z11", "Z11K1": "Z1672", "Z11K2": "此維基數據屬性參照" }, { "Z1K1": "Z11", "Z11K1": "Z1787", "Z11K2": "primo riferimento" }, { "Z1K1": "Z11", "Z11K1": "Z1011", "Z11K2": "একটি বৈশিষ্ট্য উল্লেখ" }, { "Z1K1": "Z11", "Z11K1": "Z1430", "Z11K2": "erste Wikidata-Eigenschaft-Referenz" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z6092", "Z17K2": "Z19267K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "that Wikidata property reference" }, { "Z1K1": "Z11", "Z11K1": "Z1672", "Z11K2": "另一個維基數據參照" }, { "Z1K1": "Z11", "Z11K1": "Z1787", "Z11K2": "secondo riferimento" }, { "Z1K1": "Z11", "Z11K1": "Z1011", "Z11K2": "আরেকটি বৈশিষ্ট্য উল্লেখ" }, { "Z1K1": "Z11", "Z11K1": "Z1430", "Z11K2": "zweite Wikidata-Eigenschaft-Referenz" } ] } } ], "Z8K2": "Z40", "Z8K3": [ "Z20", "Z19269", "Z22225" ], "Z8K4": [ "Z14", "Z20049", "Z19268" ], "Z8K5": "Z19267" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "same Wikidata property reference" }, { "Z1K1": "Z11", "Z11K1": "Z1672", "Z11K2": "相同的維基數據屬性參照" }, { "Z1K1": "Z11", "Z11K1": "Z1787", "Z11K2": "stesso Riferimento a proprietà Wikidata" }, { "Z1K1": "Z11", "Z11K1": "Z1011", "Z11K2": "উইকিউপাত্ত বৈশিষ্ট্য উল্লেখ সমতা" }, { "Z1K1": "Z11", "Z11K1": "Z1078", "Z11K2": "referensi properti Wikidata yang sama" }, { "Z1K1": "Z11", "Z11K1": "Z1430", "Z11K2": "gleiche Wikidata-Eigenschaft-Referenz" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31", { "Z1K1": "Z31", "Z31K1": "Z1002", "Z31K2": [ "Z6", "equality of Wikidata property references", "Wikidata property references equal", "equal", "=", "property equality", "equal Wikidata property references", "==PID" ] }, { "Z1K1": "Z31", "Z31K1": "Z1360", "Z31K2": [ "Z6", "==Z6092", "==Z6092.Z6092K1" ] }, { "Z1K1": "Z31", "Z31K1": "Z1787", "Z31K2": [ "Z6", "uguaglianza tra riferimenti a proprietà Wikidata", "riferimenti a proprietà Wikidata uguali", "stesso PID", "PID uguali", "stessi PID" ] }, { "Z1K1": "Z31", "Z31K1": "Z1011", "Z31K2": [ "Z6", "একই উইকিউপাত্ত বৈশিষ্ট্য উল্লেখ", "সমান উইকিউপাত্ত বৈশিষ্ট্য উল্লেখ" ] }, { "Z1K1": "Z31", "Z31K1": "Z1078", "Z31K2": [ "Z6", "==PID" ] } ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1011", "Z11K2": "সত্য প্রদান করবে যদি দুটি উইকিউপাত্ত বৈশিষ্ট্য উল্লেখ একই হয়।" }, { "Z1K1": "Z11", "Z11K1": "Z1078", "Z11K2": "kondisi di mana dua atau lebih pernyataan (klaim) di Wikidata didukung oleh sumber rujukan yang sama pada properti tertentu" } ] } } tog5w2kq26mejz7uyprm7zbp5z1fchq 285786 285724 2026-06-22T21:27:39Z WikiLambda system 3 Updated the implementation list (see [[Help:Wikifunctions/Implementation_ordering_and_choosing|About implementation selection]]) 285786 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z19267" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z6092", "Z17K2": "Z19267K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "this Wikidata property reference" }, { "Z1K1": "Z11", "Z11K1": "Z1672", "Z11K2": "此維基數據屬性參照" }, { "Z1K1": "Z11", "Z11K1": "Z1787", "Z11K2": "primo riferimento" }, { "Z1K1": "Z11", "Z11K1": "Z1011", "Z11K2": "একটি বৈশিষ্ট্য উল্লেখ" }, { "Z1K1": "Z11", "Z11K1": "Z1430", "Z11K2": "erste Wikidata-Eigenschaft-Referenz" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z6092", "Z17K2": "Z19267K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "that Wikidata property reference" }, { "Z1K1": "Z11", "Z11K1": "Z1672", "Z11K2": "另一個維基數據參照" }, { "Z1K1": "Z11", "Z11K1": "Z1787", "Z11K2": "secondo riferimento" }, { "Z1K1": "Z11", "Z11K1": "Z1011", "Z11K2": "আরেকটি বৈশিষ্ট্য উল্লেখ" }, { "Z1K1": "Z11", "Z11K1": "Z1430", "Z11K2": "zweite Wikidata-Eigenschaft-Referenz" } ] } } ], "Z8K2": "Z40", "Z8K3": [ "Z20", "Z19269", "Z22225" ], "Z8K4": [ "Z14", "Z19268", "Z20049" ], "Z8K5": "Z19267" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "same Wikidata property reference" }, { "Z1K1": "Z11", "Z11K1": "Z1672", "Z11K2": "相同的維基數據屬性參照" }, { "Z1K1": "Z11", "Z11K1": "Z1787", "Z11K2": "stesso Riferimento a proprietà Wikidata" }, { "Z1K1": "Z11", "Z11K1": "Z1011", "Z11K2": "উইকিউপাত্ত বৈশিষ্ট্য উল্লেখ সমতা" }, { "Z1K1": "Z11", "Z11K1": "Z1078", "Z11K2": "referensi properti Wikidata yang sama" }, { "Z1K1": "Z11", "Z11K1": "Z1430", "Z11K2": "gleiche Wikidata-Eigenschaft-Referenz" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31", { "Z1K1": "Z31", "Z31K1": "Z1002", "Z31K2": [ "Z6", "equality of Wikidata property references", "Wikidata property references equal", "equal", "=", "property equality", "equal Wikidata property references", "==PID" ] }, { "Z1K1": "Z31", "Z31K1": "Z1360", "Z31K2": [ "Z6", "==Z6092", "==Z6092.Z6092K1" ] }, { "Z1K1": "Z31", "Z31K1": "Z1787", "Z31K2": [ "Z6", "uguaglianza tra riferimenti a proprietà Wikidata", "riferimenti a proprietà Wikidata uguali", "stesso PID", "PID uguali", "stessi PID" ] }, { "Z1K1": "Z31", "Z31K1": "Z1011", "Z31K2": [ "Z6", "একই উইকিউপাত্ত বৈশিষ্ট্য উল্লেখ", "সমান উইকিউপাত্ত বৈশিষ্ট্য উল্লেখ" ] }, { "Z1K1": "Z31", "Z31K1": "Z1078", "Z31K2": [ "Z6", "==PID" ] } ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1011", "Z11K2": "সত্য প্রদান করবে যদি দুটি উইকিউপাত্ত বৈশিষ্ট্য উল্লেখ একই হয়।" }, { "Z1K1": "Z11", "Z11K1": "Z1078", "Z11K2": "kondisi di mana dua atau lebih pernyataan (klaim) di Wikidata didukung oleh sumber rujukan yang sama pada properti tertentu" } ] } } avyn8asyvfiw0wq3bx5skd1oi140ogw Z19268 0 41202 285725 138949 2026-06-22T18:09:13Z Ameisenigel 44 de 285725 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z19268" }, "Z2K2": { "Z1K1": "Z14", "Z14K1": "Z19267", "Z14K2": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z6092K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z19267K1" } }, "Z866K2": { "Z1K1": "Z7", "Z7K1": "Z20046", "Z20046K1": { "Z1K1": "Z18", "Z18K1": "Z19267K2" } } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "same Wikidata property reference, composition" }, { "Z1K1": "Z11", "Z11K1": "Z1430", "Z11K2": "gleiche Wikidata-Eigenschaft-Referenz, Komposition" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31", { "Z1K1": "Z31", "Z31K1": "Z1002", "Z31K2": [ "Z6", "equal Wikidata property reference, composition" ] }, { "Z1K1": "Z31", "Z31K1": "Z1360", "Z31K2": [ "Z6", "==Z6092" ] } ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } rf66ye90d251ym8ib1ng0cdghw525ax Z19269 0 41203 285726 133347 2026-06-22T18:09:38Z Ameisenigel 44 de 285726 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z19269" }, "Z2K2": { "Z1K1": "Z20", "Z20K1": "Z19267", "Z20K2": { "Z1K1": "Z7", "Z7K1": "Z19267", "Z19267K1": { "Z1K1": "Z6092", "Z6092K1": "P31" }, "Z19267K2": { "Z1K1": "Z6092", "Z6092K1": "P31" } }, "Z20K3": { "Z1K1": "Z7", "Z7K1": "Z844", "Z844K2": { "Z1K1": "Z40", "Z40K1": "Z41" } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "P31 = P31" }, { "Z1K1": "Z11", "Z11K1": "Z1430", "Z11K2": "ist ein(e) = ist ein(e)" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } 65yvm3ibakikf4u0jukxcp0x36bktig Z19270 0 41204 285727 158853 2026-06-22T18:10:03Z Ameisenigel 44 de 285727 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z19270" }, "Z2K2": { "Z1K1": "Z20", "Z20K1": "Z19265", "Z20K2": { "Z1K1": "Z7", "Z7K1": "Z19265", "Z19265K1": { "Z1K1": "Z7", "Z7K1": "Z6825", "Z6825K1": { "Z1K1": "Z6095", "Z6095K1": "L3943" } } }, "Z20K3": { "Z1K1": "Z7", "Z7K1": "Z13522", "Z13522K2": { "Z1K1": "Z13518", "Z13518K1": "1" } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Count of senses of L-en university" }, { "Z1K1": "Z11", "Z11K1": "Z1004", "Z11K2": "compter le nombre de sens de L3943 (university)" }, { "Z1K1": "Z11", "Z11K1": "Z1430", "Z11K2": "university hat eine Bedeutung" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1004", "Z11K2": "renvoie le nombre de sens (1) du lexème L3943, à savoir university en anglais" } ] } } 6wyeh80epuef0sj6cllbn6ki9q7glwa Wikifunctions:Catalogue/String operations 4 41922 285743 278456 2026-06-22T18:24:02Z Denny 81 /* Concatenation and duplication */ 285743 wikitext text/x-wiki [[File:Wikifunctions-logo-string-operations.svg|200px|right]] {{see also|WF:Catalogue/Character operations}} These are functions that deal with {{Z+|Z6}} ==Evaluation== These functions perform simple tests on a text string to tell you if something else needs to be done, or they already are in an expected format. ===Empty strings=== * {{Z+|Z10008}} ** {{Z+|Z12941}} * {{Z+|Z24331}} * {{Z+|Z11082}} ** {{Z+|Z32556}} ===Case and character types=== * {{Z+|Z10083}} * {{Z+|Z10715}} ** {{Z+|Z28182}} * {{Z+|Z10336}} * {{Z+|Z11349}} * {{Z+|Z10346}} * {{Z+|Z11383}} * {{Z+|Z10375}} * {{Z+|Z10363}} * {{Z+|Z10897}} * {{Z+|Z10324}} * {{Z+|Z25592}} * {{Z+|Z11678}} * {{Z+|Z11684}} * {{Z+|Z12626}} ===Other=== * {{Z+|Z10096}} * {{Z+|Z19170}} * {{Z+|Z19191}} * {{Z+|Z19217}} * {{Z+|Z13482}} *{{Z+|Z14083}} * {{Z+|Z11573}} ==Properties and metrics== ===Length=== * {{Z+|Z11040}} * {{Z+|Z17036}} * {{Z+|Z17030}} ===Distance=== * {{Z+|Z11328}} * {{Z+|Z10393}} ===Get specific characters or substrings=== ====Anywhere in the string==== * {{Z+|Z24472}} ** {{Z+|Z14244}} * {{Z+|Z28630}} ** {{Z+|Z14592}} ====At the start==== * {{Z+|Z31145}} ** {{Z+|Z32065}} ** {{Z+|Z10901}} * {{Z+|Z15996}} * {{Z+|Z22344}} ====At the end==== * {{Z+|Z31845}} ** {{Z+|Z11060}} * {{Z+|Z14460}} * {{Z+|Z14463}} ==Comparison== {{Help:Comparison function table/String}} ===Equality=== * {{Z+|Z866}} * {{Z+|Z10539}} * {{Z+|Z10379}} * {{Z+|Z18898}} ===Substrings and characters=== * {{Z+|Z10615}} * {{Z+|Z10618}} * {{Z+|Z11693}} * {{Z+|Z14483}} * {{Z+|Z13119}} * {{Z+|Z10973}} * {{Z+|Z19177}} ===Length=== * {{Z+|Z11690}} * {{Z+|Z11519}} ==String search== * {{Z+|Z10070}} * {{Z+|Z14450}} * {{Z+|Z31826}} ** {{Z+|Z31268}} ==Transformation== These perform character replacements and other basic operations. ===Add characters=== ====To the start and end==== * {{Z+|Z11145}} ====To the end (suffix)==== * {{Z+|Z27528}} * {{Z+|Z27529}} =====If the string doesn't already end with a specific suffix===== * {{Z+|Z17973}} ======Language-specific suffixes====== * {{Z+|Z18066}} * {{Z+|Z18050}} * {{Z+|Z18042}} * {{Z+|Z18039}} * {{Z+|Z18036}} * {{Z+|Z18020}} * {{Z+|Z18017}} * {{Z+|Z17952}} * {{Z+|Z17942}} * {{Z+|Z17939}} * {{Z+|Z17749}} * {{Z+|Z17904}} * {{Z+|Z17948}} * {{Z+|Z17791}} ===Replace characters=== ====Anywhere in the string==== * {{Z+|Z10075}} * {{Z+|Z14613}} * {{Z+|Z29506}} * {{Z+|Z11492}} * {{Z+|Z11501}} ====At the end (suffix)==== * {{Z+|Z11178}} * {{Z+|Z27159}} =====Language-specific suffixes===== * {{Z+|Z18092}} * {{Z+|Z18026}} * {{Z+|Z17827}} * {{Z+|Z17915}} * {{Z+|Z17918}} * {{Z+|Z27517}} * {{Z+|Z27522}} * {{Z+|Z27525}} * {{Z+|Z27534}} * {{Z+|Z27535}} * {{Z+|Z27536}} * {{Z+|Z27537}} * {{Z+|Z27546}} ===Delete or discard characters=== ====Anywhere in the string==== * {{Z+|Z10052}} * {{Z+|Z11531}} * {{Z+|Z14119}} * {{Z+|Z11193}} * {{Z+|Z14494}} * {{Z+|Z10171}} * {{Z+|Z14515}} * {{Z+|Z14520}} =====Duplicates===== * {{Z+|Z11102}} ** {{Z+|Z19185}} * {{Z+|Z22507}} ====At the start and end==== * {{Z+|Z26414}} * {{Z+|Z11151}} ====At the start (prefix)==== * {{Z+|Z14636}} ** {{Z+|Z14456}} * {{Z+|Z31955}} ** {{Z+|Z31880}} * {{Z+|Z11410}} * {{Z+|Z11412}} * {{Z+|Z11414}} * {{Z+|Z11416}} ====At the end (suffix)==== * {{Z+|Z11879}} * {{Z+|Z11170}} * {{Z+|Z11418}} * {{Z+|Z11420}} * {{Z+|Z11422}} * {{Z+|Z11424}} ====Whitespace==== * {{Z+|Z10079}} ** {{Z+|Z10084}} ** {{Z+|Z10095}} ===Concatenation and duplication=== * {{Z+|Z10000}} ** {{Z+|Z27182}} ** {{Z+|Z21394}} ** {{Z+|Z12899}} ** {{Z+|Z22504}} ** {{Z+|Z22514}} ** {{Z+|Z27385}} ** {{Z+|Z19654}} ** {{Z+|Z36804}} * {{Z+|Z10753}} ** {{Z+|Z12624}} ** {{Z+|Z10911}} ===Case=== * {{Z+|Z10018}} * {{Z+|Z10047}} ** {{Z+|Z32953}} * {{Z+|Z10251}} * {{Z+|Z10290}} * {{Z+|Z10816}} * {{Z+|Z10281}} ===Formatting and presentation=== * {{Z+|Z19612}} * {{Z+|Z11484}} * {{Z+|Z11490}} * {{Z+|Z35494}} * {{Z+|Z13473}} * {{Z+|Z14770}} * {{Z+|Z10108}} * {{Z+|Z22511}} * {{Z+|Z31471}} === Other === * {{Z+|Z22699}} * {{Z+|Z10012}} * {{Z+|Z13060}} * {{Z+|Z22717}} * {{Z+|Z25614}} * {{Z+|Z27053}} * {{Z+|Z32085}} == Regular expressions == * {{Z+|Z25847}} * {{Z+|Z25829}} ** {{Z+|Z25833}} ** {{Z+|Z25853}} * {{Z+|Z12316}} * {{Z+|Z10193}} ** {{Z+|Z29153}} ** {{Z+|Z29890}} ==Encode and decode== * {{Z+|Z10366}} * {{Z+|Z10373}} * {{Z+|Z10761}} * {{Z+|Z10774}} * {{Z+|Z10944}} * {{Z+|Z10956}} * {{Z+|Z10309}} * {{Z+|Z10970}} * {{Z+|Z11003}} * {{Z+|Z11007}} * {{Z+|Z14189}} * {{Z+|Z14195}} * {{Z+|Z10057}} * {{Z+|Z10062}} (needed to demonstrate base64 encode/decode examples) ==Cryptography== ===Caesar cipher=== (alphabet needs to be specified when calling these functions) * {{Z+|Z12812}} * {{Z+|Z10846}} * {{Z+|Z10627}} [[:en:ROT13|ROT13 encrypt/decrypt]] * {{Z+|Z10851}} * {{Z+|Z17530}} * {{Z+|Z17526}} * {{Z+|Z20669}} * {{Z+|Z23869}} ===Substitution ciphers=== * {{Z+|Z22725}} * {{Z+|Z22728}} ===Vigenère cipher=== * {{Z+|Z23848}} * {{Z+|Z23851}} * {{Z+|Z23953}} * {{Z+|Z23956}} ===Cryptographic hash functions=== (would be better with types representing a stream of bytes) * {{Z+|Z10148}} [[wikidata:Q47476577|SHA-1]] * {{Z+|Z10124}} [[wikidata:Q47465971|SHA-256]] * {{Z+|Z10132}} [[wikidata:Q47465971|SHA-384]] * {{Z+|Z10067}} [[wikidata:Q47465971|SHA-512]] ==Wikitext and Mediawiki string operations== * {{Z+|Z11019}} * {{Z+|Z11139}} * {{Z+|Z10919}} * {{Z+|Z11156}} * {{Z+|Z17954}} * {{Z+|Z17956}} ==Comma-separated values (CSV)== * {{Z+|Z11094}} ==Color operations== Only includes functions that operate on hex triplets. For other color functions, see [[Wikifunctions:Catalogue/Color functions]]. * {{Z+|Z12997}} * {{Z+|Z13017}} * {{Z+|Z17664}} * {{z+|Z17687}} * {{Z+|Z17713}} * {{Z+|Z13023}} * {{Z+|Z13028}} * {{Z+|Z18184}} * {{Z+|Z18189}} * {{Z+|Z18196}} * {{Z+|Z18204}} * {{Z+|Z18208}} * {{Z+|Z18212}} * {{Z+|Z18263}} * {{Z+|Z18268}} * {{Z+|Z18296}} * {{Z+|Z18300}} ==HTML fragments== See [[Wikifunctions:Catalogue/HTML operations]] [[Category:Lists of functions]] 0lm8yda5uqeyyihg0kzebnj23ormobt Wikifunctions:Catalogue/Natural language operations/Global language functions 4 41926 285635 285561 2026-06-22T13:25:48Z Denny 81 /* English */ 285635 wikitext text/x-wiki See also the [[Wikifunctions:Catalogue/Wikidata operations|Wikidata operations]], particularly for Lexemes, Senses, and Forms. == Sentence and fragment generation == {{main|WF:NLG functions}} {{see also|WF:Abstract Wikipedia/2025 fragment experiments}} * {{Z+|Z26039}} * {{Z+|Z26095}} * {{Z+|Z26627}} * {{Z+|Z28797}} * {{Z+|Z28803}} * {{Z+|Z29743}} * {{Z+|Z31405}} * {{Z+|Z32321}} * {{Z+|Z32208}} ** {{Z+|Z32204}} * {{Z+|Z32229}} * {{Z+|Z32283}} ** {{Z+|Z32308}} * {{Z+|Z32276}} * {{Z+|Z32297}} * {{Z+|Z32326}} === Cross-lingual sentence creation === * {{Z+|Z22664}} * {{Z+|Z26955}} * {{Z+|Z27137}} * {{Z+|Z27885}} ** {{Z+|Z30159}} * {{Z+|Z28254}} === Helpers === ;Genders * {{z+|Z26676}} * {{z+|Z30539}} * {{z+|Z28089}} * {{z+|Z26745}} * {{z+|Z23067}} * {{z+|Z26364}} * {{z+|Z25754}} * {{z+|Z20616}} == Numbers == * {{Z+|Z16437}} * {{Z+|Z26829}} == Natural language == {{Help:Type deconstruction table/Natural language}} * {{Z+|Z860}} * {{Z+|Z29958}} ** {{Z+|Z29649}} * {{Z+|Z14326}} * {{Z+|Z14321}} ** {{Z+|Z29750}} * {{Z+|Z24097}} * {{Z+|Z28282}} * {{Z+|Z33738}} * {{Z+|Z29654}} * {{Z+|Z30043}} == Monolingual text and stringset == {{Help:Type deconstruction table/Monolingual text}} {{Help:Type deconstruction table/Monolingual stringset}} * {{Z+|Z14392}} * {{Z+|Z12877}} ** {{Z+|Z33175}} ** {{Z+|Z14334}} * {{Z+|Z14396}} ** {{Z+|Z21583}} ** {{Z+|Z29749}} * {{Z+|Z19254}} * {{Z+|Z19279}} * {{Z+|Z23236}} * {{Z+|Z26107}} ** {{Z+|Z861}} * {{Z+|Z34663}} == Multilingual text and stringset == {{Help:Type deconstruction table/Multilingual text}} {{Help:Type deconstruction table/Multilingual stringset}} * {{Z+|Z19312}} * {{Z+|Z19254}} * {{Z+|Z19272}} * {{Z+|Z19279}} * {{Z+|Z23236}} * {{Z+|Z27893}} ** {{Z+|Z27905}} == Select a language and language configurator == {{Help:Type deconstruction table/Per lang config}} {{Help:Type deconstruction table/Per lang config branch}} * {{Z+|Z14310}} * {{Z+|Z14311}} * {{Z+|Z14548}} * {{Z+|Z23156}} * {{Z+|Z23159}} * {{Z+|Z23143}} == Syntactic tables (experimental) == Regarding the Type {{Z+|Z36462}} * {{Z+|Z36608}} * ''(not working 100%)'' {{Z+|Z36717}} * {{Z+|Z36613}} * {{Z+|Z36616}} * {{Z+|Z36636}} * {{Z+|Z36639}} * {{Z+|Z36644}} * {{Z+|Z36723}} * ''(not working)'' {{Z+|Z36727}} * {{Z+|Z36650}} * {{Z+|Z36652}} * {{Z+|Z36733}} * {{Z+|Z36737}} * {{Z+|Z36743}} * {{Z+|Z36747}} * Agree options === Syntactic options === Regarding the Type {{Z+|Z36463}} * {{Z+|Z36656}} * {{Z+|Z36658}} * {{Z+|Z36660}} * ''(not working 100%)'' {{Z+|Z36670}} * {{Z+|Z36662}} * {{Z+|Z36666}} === Language-specific === These should probably move or be copied on the language specific functions. ==== English ==== * Example noun: {{Z|Z36617}} * {{Z+|Z36607}} * {{Z+|Z36754}} * {{Z+|Z36759}} * {{Z+|Z36762}} * {{Z+|Z36766}} * {{Z+|Z36770}} ==== German ==== * {{Z|Z36645}} [[Category:Lists of functions]] edyy9rmyssg70uqob4qyrkwasalmvnd 285640 285635 2026-06-22T14:00:23Z Denny 81 /* English */ 285640 wikitext text/x-wiki See also the [[Wikifunctions:Catalogue/Wikidata operations|Wikidata operations]], particularly for Lexemes, Senses, and Forms. == Sentence and fragment generation == {{main|WF:NLG functions}} {{see also|WF:Abstract Wikipedia/2025 fragment experiments}} * {{Z+|Z26039}} * {{Z+|Z26095}} * {{Z+|Z26627}} * {{Z+|Z28797}} * {{Z+|Z28803}} * {{Z+|Z29743}} * {{Z+|Z31405}} * {{Z+|Z32321}} * {{Z+|Z32208}} ** {{Z+|Z32204}} * {{Z+|Z32229}} * {{Z+|Z32283}} ** {{Z+|Z32308}} * {{Z+|Z32276}} * {{Z+|Z32297}} * {{Z+|Z32326}} === Cross-lingual sentence creation === * {{Z+|Z22664}} * {{Z+|Z26955}} * {{Z+|Z27137}} * {{Z+|Z27885}} ** {{Z+|Z30159}} * {{Z+|Z28254}} === Helpers === ;Genders * {{z+|Z26676}} * {{z+|Z30539}} * {{z+|Z28089}} * {{z+|Z26745}} * {{z+|Z23067}} * {{z+|Z26364}} * {{z+|Z25754}} * {{z+|Z20616}} == Numbers == * {{Z+|Z16437}} * {{Z+|Z26829}} == Natural language == {{Help:Type deconstruction table/Natural language}} * {{Z+|Z860}} * {{Z+|Z29958}} ** {{Z+|Z29649}} * {{Z+|Z14326}} * {{Z+|Z14321}} ** {{Z+|Z29750}} * {{Z+|Z24097}} * {{Z+|Z28282}} * {{Z+|Z33738}} * {{Z+|Z29654}} * {{Z+|Z30043}} == Monolingual text and stringset == {{Help:Type deconstruction table/Monolingual text}} {{Help:Type deconstruction table/Monolingual stringset}} * {{Z+|Z14392}} * {{Z+|Z12877}} ** {{Z+|Z33175}} ** {{Z+|Z14334}} * {{Z+|Z14396}} ** {{Z+|Z21583}} ** {{Z+|Z29749}} * {{Z+|Z19254}} * {{Z+|Z19279}} * {{Z+|Z23236}} * {{Z+|Z26107}} ** {{Z+|Z861}} * {{Z+|Z34663}} == Multilingual text and stringset == {{Help:Type deconstruction table/Multilingual text}} {{Help:Type deconstruction table/Multilingual stringset}} * {{Z+|Z19312}} * {{Z+|Z19254}} * {{Z+|Z19272}} * {{Z+|Z19279}} * {{Z+|Z23236}} * {{Z+|Z27893}} ** {{Z+|Z27905}} == Select a language and language configurator == {{Help:Type deconstruction table/Per lang config}} {{Help:Type deconstruction table/Per lang config branch}} * {{Z+|Z14310}} * {{Z+|Z14311}} * {{Z+|Z14548}} * {{Z+|Z23156}} * {{Z+|Z23159}} * {{Z+|Z23143}} == Syntactic tables (experimental) == Regarding the Type {{Z+|Z36462}} * {{Z+|Z36608}} * ''(not working 100%)'' {{Z+|Z36717}} * {{Z+|Z36613}} * {{Z+|Z36616}} * {{Z+|Z36636}} * {{Z+|Z36639}} * {{Z+|Z36644}} * {{Z+|Z36723}} * ''(not working)'' {{Z+|Z36727}} * {{Z+|Z36650}} * {{Z+|Z36652}} * {{Z+|Z36733}} * {{Z+|Z36737}} * {{Z+|Z36743}} * {{Z+|Z36747}} * Agree options === Syntactic options === Regarding the Type {{Z+|Z36463}} * {{Z+|Z36656}} * {{Z+|Z36658}} * {{Z+|Z36660}} * ''(not working 100%)'' {{Z+|Z36670}} * {{Z+|Z36662}} * {{Z+|Z36666}} === Language-specific === These should probably move or be copied on the language specific functions. ==== English ==== ===== Nouns ===== * Example noun: {{Z|Z36617}} * {{Z+|Z36607}} * {{Z+|Z36754}} * {{Z+|Z36759}} * {{Z+|Z36762}} * {{Z+|Z36766}} * {{Z+|Z36770}} ==== German ==== * {{Z|Z36645}} [[Category:Lists of functions]] pb0t11rsnl2va7qmbfrwey385ldxmt7 285653 285640 2026-06-22T16:45:34Z Denny 81 /* Nouns */ 285653 wikitext text/x-wiki See also the [[Wikifunctions:Catalogue/Wikidata operations|Wikidata operations]], particularly for Lexemes, Senses, and Forms. == Sentence and fragment generation == {{main|WF:NLG functions}} {{see also|WF:Abstract Wikipedia/2025 fragment experiments}} * {{Z+|Z26039}} * {{Z+|Z26095}} * {{Z+|Z26627}} * {{Z+|Z28797}} * {{Z+|Z28803}} * {{Z+|Z29743}} * {{Z+|Z31405}} * {{Z+|Z32321}} * {{Z+|Z32208}} ** {{Z+|Z32204}} * {{Z+|Z32229}} * {{Z+|Z32283}} ** {{Z+|Z32308}} * {{Z+|Z32276}} * {{Z+|Z32297}} * {{Z+|Z32326}} === Cross-lingual sentence creation === * {{Z+|Z22664}} * {{Z+|Z26955}} * {{Z+|Z27137}} * {{Z+|Z27885}} ** {{Z+|Z30159}} * {{Z+|Z28254}} === Helpers === ;Genders * {{z+|Z26676}} * {{z+|Z30539}} * {{z+|Z28089}} * {{z+|Z26745}} * {{z+|Z23067}} * {{z+|Z26364}} * {{z+|Z25754}} * {{z+|Z20616}} == Numbers == * {{Z+|Z16437}} * {{Z+|Z26829}} == Natural language == {{Help:Type deconstruction table/Natural language}} * {{Z+|Z860}} * {{Z+|Z29958}} ** {{Z+|Z29649}} * {{Z+|Z14326}} * {{Z+|Z14321}} ** {{Z+|Z29750}} * {{Z+|Z24097}} * {{Z+|Z28282}} * {{Z+|Z33738}} * {{Z+|Z29654}} * {{Z+|Z30043}} == Monolingual text and stringset == {{Help:Type deconstruction table/Monolingual text}} {{Help:Type deconstruction table/Monolingual stringset}} * {{Z+|Z14392}} * {{Z+|Z12877}} ** {{Z+|Z33175}} ** {{Z+|Z14334}} * {{Z+|Z14396}} ** {{Z+|Z21583}} ** {{Z+|Z29749}} * {{Z+|Z19254}} * {{Z+|Z19279}} * {{Z+|Z23236}} * {{Z+|Z26107}} ** {{Z+|Z861}} * {{Z+|Z34663}} == Multilingual text and stringset == {{Help:Type deconstruction table/Multilingual text}} {{Help:Type deconstruction table/Multilingual stringset}} * {{Z+|Z19312}} * {{Z+|Z19254}} * {{Z+|Z19272}} * {{Z+|Z19279}} * {{Z+|Z23236}} * {{Z+|Z27893}} ** {{Z+|Z27905}} == Select a language and language configurator == {{Help:Type deconstruction table/Per lang config}} {{Help:Type deconstruction table/Per lang config branch}} * {{Z+|Z14310}} * {{Z+|Z14311}} * {{Z+|Z14548}} * {{Z+|Z23156}} * {{Z+|Z23159}} * {{Z+|Z23143}} == Syntactic tables (experimental) == Regarding the Type {{Z+|Z36462}} * {{Z+|Z36608}} * ''(not working 100%)'' {{Z+|Z36717}} * {{Z+|Z36613}} * {{Z+|Z36616}} * {{Z+|Z36636}} * {{Z+|Z36639}} * {{Z+|Z36644}} * {{Z+|Z36723}} * ''(not working)'' {{Z+|Z36727}} * {{Z+|Z36650}} * {{Z+|Z36652}} * {{Z+|Z36733}} * {{Z+|Z36737}} * {{Z+|Z36743}} * {{Z+|Z36747}} * Agree options === Syntactic options === Regarding the Type {{Z+|Z36463}} * {{Z+|Z36656}} * {{Z+|Z36658}} * {{Z+|Z36660}} * ''(not working 100%)'' {{Z+|Z36670}} * {{Z+|Z36662}} * {{Z+|Z36666}} === Language-specific === These should probably move or be copied on the language specific functions. ==== English ==== ===== Nouns ===== * Example noun: {{Z|Z36617}} * {{Z+|Z36607}} * {{Z+|Z36754}} * {{Z+|Z36759}} * {{Z+|Z36762}} * {{Z+|Z36766}} * {{Z+|Z36770}} ===== Determiners ===== ==== German ==== * {{Z|Z36645}} [[Category:Lists of functions]] kzai1d6p0fs35mbwum4239od7bsj2qc 285656 285653 2026-06-22T16:48:16Z Denny 81 /* Determiners */ 285656 wikitext text/x-wiki See also the [[Wikifunctions:Catalogue/Wikidata operations|Wikidata operations]], particularly for Lexemes, Senses, and Forms. == Sentence and fragment generation == {{main|WF:NLG functions}} {{see also|WF:Abstract Wikipedia/2025 fragment experiments}} * {{Z+|Z26039}} * {{Z+|Z26095}} * {{Z+|Z26627}} * {{Z+|Z28797}} * {{Z+|Z28803}} * {{Z+|Z29743}} * {{Z+|Z31405}} * {{Z+|Z32321}} * {{Z+|Z32208}} ** {{Z+|Z32204}} * {{Z+|Z32229}} * {{Z+|Z32283}} ** {{Z+|Z32308}} * {{Z+|Z32276}} * {{Z+|Z32297}} * {{Z+|Z32326}} === Cross-lingual sentence creation === * {{Z+|Z22664}} * {{Z+|Z26955}} * {{Z+|Z27137}} * {{Z+|Z27885}} ** {{Z+|Z30159}} * {{Z+|Z28254}} === Helpers === ;Genders * {{z+|Z26676}} * {{z+|Z30539}} * {{z+|Z28089}} * {{z+|Z26745}} * {{z+|Z23067}} * {{z+|Z26364}} * {{z+|Z25754}} * {{z+|Z20616}} == Numbers == * {{Z+|Z16437}} * {{Z+|Z26829}} == Natural language == {{Help:Type deconstruction table/Natural language}} * {{Z+|Z860}} * {{Z+|Z29958}} ** {{Z+|Z29649}} * {{Z+|Z14326}} * {{Z+|Z14321}} ** {{Z+|Z29750}} * {{Z+|Z24097}} * {{Z+|Z28282}} * {{Z+|Z33738}} * {{Z+|Z29654}} * {{Z+|Z30043}} == Monolingual text and stringset == {{Help:Type deconstruction table/Monolingual text}} {{Help:Type deconstruction table/Monolingual stringset}} * {{Z+|Z14392}} * {{Z+|Z12877}} ** {{Z+|Z33175}} ** {{Z+|Z14334}} * {{Z+|Z14396}} ** {{Z+|Z21583}} ** {{Z+|Z29749}} * {{Z+|Z19254}} * {{Z+|Z19279}} * {{Z+|Z23236}} * {{Z+|Z26107}} ** {{Z+|Z861}} * {{Z+|Z34663}} == Multilingual text and stringset == {{Help:Type deconstruction table/Multilingual text}} {{Help:Type deconstruction table/Multilingual stringset}} * {{Z+|Z19312}} * {{Z+|Z19254}} * {{Z+|Z19272}} * {{Z+|Z19279}} * {{Z+|Z23236}} * {{Z+|Z27893}} ** {{Z+|Z27905}} == Select a language and language configurator == {{Help:Type deconstruction table/Per lang config}} {{Help:Type deconstruction table/Per lang config branch}} * {{Z+|Z14310}} * {{Z+|Z14311}} * {{Z+|Z14548}} * {{Z+|Z23156}} * {{Z+|Z23159}} * {{Z+|Z23143}} == Syntactic tables (experimental) == Regarding the Type {{Z+|Z36462}} * {{Z+|Z36608}} * ''(not working 100%)'' {{Z+|Z36717}} * {{Z+|Z36613}} * {{Z+|Z36616}} * {{Z+|Z36636}} * {{Z+|Z36639}} * {{Z+|Z36644}} * {{Z+|Z36723}} * ''(not working)'' {{Z+|Z36727}} * {{Z+|Z36650}} * {{Z+|Z36652}} * {{Z+|Z36733}} * {{Z+|Z36737}} * {{Z+|Z36743}} * {{Z+|Z36747}} * Agree options === Syntactic options === Regarding the Type {{Z+|Z36463}} * {{Z+|Z36656}} * {{Z+|Z36658}} * {{Z+|Z36660}} * ''(not working 100%)'' {{Z+|Z36670}} * {{Z+|Z36662}} * {{Z+|Z36666}} === Language-specific === These should probably move or be copied on the language specific functions. ==== English ==== ===== Nouns ===== * Example noun: {{Z|Z36617}} * {{Z+|Z36607}} * {{Z+|Z36754}} * {{Z+|Z36759}} * {{Z+|Z36762}} * {{Z+|Z36766}} * {{Z+|Z36770}} ===== Determiners ===== * {{Z+|Z36781}} ==== German ==== * {{Z|Z36645}} [[Category:Lists of functions]] 6ytzv8w61sji3yqgxhfoxb24ud4j29t 285659 285656 2026-06-22T16:50:33Z Denny 81 /* Determiners */ 285659 wikitext text/x-wiki See also the [[Wikifunctions:Catalogue/Wikidata operations|Wikidata operations]], particularly for Lexemes, Senses, and Forms. == Sentence and fragment generation == {{main|WF:NLG functions}} {{see also|WF:Abstract Wikipedia/2025 fragment experiments}} * {{Z+|Z26039}} * {{Z+|Z26095}} * {{Z+|Z26627}} * {{Z+|Z28797}} * {{Z+|Z28803}} * {{Z+|Z29743}} * {{Z+|Z31405}} * {{Z+|Z32321}} * {{Z+|Z32208}} ** {{Z+|Z32204}} * {{Z+|Z32229}} * {{Z+|Z32283}} ** {{Z+|Z32308}} * {{Z+|Z32276}} * {{Z+|Z32297}} * {{Z+|Z32326}} === Cross-lingual sentence creation === * {{Z+|Z22664}} * {{Z+|Z26955}} * {{Z+|Z27137}} * {{Z+|Z27885}} ** {{Z+|Z30159}} * {{Z+|Z28254}} === Helpers === ;Genders * {{z+|Z26676}} * {{z+|Z30539}} * {{z+|Z28089}} * {{z+|Z26745}} * {{z+|Z23067}} * {{z+|Z26364}} * {{z+|Z25754}} * {{z+|Z20616}} == Numbers == * {{Z+|Z16437}} * {{Z+|Z26829}} == Natural language == {{Help:Type deconstruction table/Natural language}} * {{Z+|Z860}} * {{Z+|Z29958}} ** {{Z+|Z29649}} * {{Z+|Z14326}} * {{Z+|Z14321}} ** {{Z+|Z29750}} * {{Z+|Z24097}} * {{Z+|Z28282}} * {{Z+|Z33738}} * {{Z+|Z29654}} * {{Z+|Z30043}} == Monolingual text and stringset == {{Help:Type deconstruction table/Monolingual text}} {{Help:Type deconstruction table/Monolingual stringset}} * {{Z+|Z14392}} * {{Z+|Z12877}} ** {{Z+|Z33175}} ** {{Z+|Z14334}} * {{Z+|Z14396}} ** {{Z+|Z21583}} ** {{Z+|Z29749}} * {{Z+|Z19254}} * {{Z+|Z19279}} * {{Z+|Z23236}} * {{Z+|Z26107}} ** {{Z+|Z861}} * {{Z+|Z34663}} == Multilingual text and stringset == {{Help:Type deconstruction table/Multilingual text}} {{Help:Type deconstruction table/Multilingual stringset}} * {{Z+|Z19312}} * {{Z+|Z19254}} * {{Z+|Z19272}} * {{Z+|Z19279}} * {{Z+|Z23236}} * {{Z+|Z27893}} ** {{Z+|Z27905}} == Select a language and language configurator == {{Help:Type deconstruction table/Per lang config}} {{Help:Type deconstruction table/Per lang config branch}} * {{Z+|Z14310}} * {{Z+|Z14311}} * {{Z+|Z14548}} * {{Z+|Z23156}} * {{Z+|Z23159}} * {{Z+|Z23143}} == Syntactic tables (experimental) == Regarding the Type {{Z+|Z36462}} * {{Z+|Z36608}} * ''(not working 100%)'' {{Z+|Z36717}} * {{Z+|Z36613}} * {{Z+|Z36616}} * {{Z+|Z36636}} * {{Z+|Z36639}} * {{Z+|Z36644}} * {{Z+|Z36723}} * ''(not working)'' {{Z+|Z36727}} * {{Z+|Z36650}} * {{Z+|Z36652}} * {{Z+|Z36733}} * {{Z+|Z36737}} * {{Z+|Z36743}} * {{Z+|Z36747}} * Agree options === Syntactic options === Regarding the Type {{Z+|Z36463}} * {{Z+|Z36656}} * {{Z+|Z36658}} * {{Z+|Z36660}} * ''(not working 100%)'' {{Z+|Z36670}} * {{Z+|Z36662}} * {{Z+|Z36666}} === Language-specific === These should probably move or be copied on the language specific functions. ==== English ==== ===== Nouns ===== * Example noun: {{Z|Z36617}} * {{Z+|Z36607}} * {{Z+|Z36754}} * {{Z+|Z36759}} * {{Z+|Z36762}} * {{Z+|Z36766}} * {{Z+|Z36770}} ===== Determiners ===== * {{Z+|Z36781}} * {{Z+|Z36782}} ==== German ==== * {{Z|Z36645}} [[Category:Lists of functions]] hy2mp4dk316iwqf7ygurpkpa7gmtwkk 285675 285659 2026-06-22T17:01:13Z Denny 81 /* Determiners */ 285675 wikitext text/x-wiki See also the [[Wikifunctions:Catalogue/Wikidata operations|Wikidata operations]], particularly for Lexemes, Senses, and Forms. == Sentence and fragment generation == {{main|WF:NLG functions}} {{see also|WF:Abstract Wikipedia/2025 fragment experiments}} * {{Z+|Z26039}} * {{Z+|Z26095}} * {{Z+|Z26627}} * {{Z+|Z28797}} * {{Z+|Z28803}} * {{Z+|Z29743}} * {{Z+|Z31405}} * {{Z+|Z32321}} * {{Z+|Z32208}} ** {{Z+|Z32204}} * {{Z+|Z32229}} * {{Z+|Z32283}} ** {{Z+|Z32308}} * {{Z+|Z32276}} * {{Z+|Z32297}} * {{Z+|Z32326}} === Cross-lingual sentence creation === * {{Z+|Z22664}} * {{Z+|Z26955}} * {{Z+|Z27137}} * {{Z+|Z27885}} ** {{Z+|Z30159}} * {{Z+|Z28254}} === Helpers === ;Genders * {{z+|Z26676}} * {{z+|Z30539}} * {{z+|Z28089}} * {{z+|Z26745}} * {{z+|Z23067}} * {{z+|Z26364}} * {{z+|Z25754}} * {{z+|Z20616}} == Numbers == * {{Z+|Z16437}} * {{Z+|Z26829}} == Natural language == {{Help:Type deconstruction table/Natural language}} * {{Z+|Z860}} * {{Z+|Z29958}} ** {{Z+|Z29649}} * {{Z+|Z14326}} * {{Z+|Z14321}} ** {{Z+|Z29750}} * {{Z+|Z24097}} * {{Z+|Z28282}} * {{Z+|Z33738}} * {{Z+|Z29654}} * {{Z+|Z30043}} == Monolingual text and stringset == {{Help:Type deconstruction table/Monolingual text}} {{Help:Type deconstruction table/Monolingual stringset}} * {{Z+|Z14392}} * {{Z+|Z12877}} ** {{Z+|Z33175}} ** {{Z+|Z14334}} * {{Z+|Z14396}} ** {{Z+|Z21583}} ** {{Z+|Z29749}} * {{Z+|Z19254}} * {{Z+|Z19279}} * {{Z+|Z23236}} * {{Z+|Z26107}} ** {{Z+|Z861}} * {{Z+|Z34663}} == Multilingual text and stringset == {{Help:Type deconstruction table/Multilingual text}} {{Help:Type deconstruction table/Multilingual stringset}} * {{Z+|Z19312}} * {{Z+|Z19254}} * {{Z+|Z19272}} * {{Z+|Z19279}} * {{Z+|Z23236}} * {{Z+|Z27893}} ** {{Z+|Z27905}} == Select a language and language configurator == {{Help:Type deconstruction table/Per lang config}} {{Help:Type deconstruction table/Per lang config branch}} * {{Z+|Z14310}} * {{Z+|Z14311}} * {{Z+|Z14548}} * {{Z+|Z23156}} * {{Z+|Z23159}} * {{Z+|Z23143}} == Syntactic tables (experimental) == Regarding the Type {{Z+|Z36462}} * {{Z+|Z36608}} * ''(not working 100%)'' {{Z+|Z36717}} * {{Z+|Z36613}} * {{Z+|Z36616}} * {{Z+|Z36636}} * {{Z+|Z36639}} * {{Z+|Z36644}} * {{Z+|Z36723}} * ''(not working)'' {{Z+|Z36727}} * {{Z+|Z36650}} * {{Z+|Z36652}} * {{Z+|Z36733}} * {{Z+|Z36737}} * {{Z+|Z36743}} * {{Z+|Z36747}} * Agree options === Syntactic options === Regarding the Type {{Z+|Z36463}} * {{Z+|Z36656}} * {{Z+|Z36658}} * {{Z+|Z36660}} * ''(not working 100%)'' {{Z+|Z36670}} * {{Z+|Z36662}} * {{Z+|Z36666}} === Language-specific === These should probably move or be copied on the language specific functions. ==== English ==== ===== Nouns ===== * Example noun: {{Z|Z36617}} * {{Z+|Z36607}} * {{Z+|Z36754}} * {{Z+|Z36759}} * {{Z+|Z36762}} * {{Z+|Z36766}} * {{Z+|Z36770}} ===== Determiners ===== * {{Z+|Z36781}} * {{Z+|Z36782}} * {{Z+|Z36783}} * {{Z+|Z36784}} ==== German ==== * {{Z|Z36645}} [[Category:Lists of functions]] ctqiuel72sjmjael6jbx5qrf0qzyzuw 285679 285675 2026-06-22T17:11:18Z Denny 81 /* Determiners */ 285679 wikitext text/x-wiki See also the [[Wikifunctions:Catalogue/Wikidata operations|Wikidata operations]], particularly for Lexemes, Senses, and Forms. == Sentence and fragment generation == {{main|WF:NLG functions}} {{see also|WF:Abstract Wikipedia/2025 fragment experiments}} * {{Z+|Z26039}} * {{Z+|Z26095}} * {{Z+|Z26627}} * {{Z+|Z28797}} * {{Z+|Z28803}} * {{Z+|Z29743}} * {{Z+|Z31405}} * {{Z+|Z32321}} * {{Z+|Z32208}} ** {{Z+|Z32204}} * {{Z+|Z32229}} * {{Z+|Z32283}} ** {{Z+|Z32308}} * {{Z+|Z32276}} * {{Z+|Z32297}} * {{Z+|Z32326}} === Cross-lingual sentence creation === * {{Z+|Z22664}} * {{Z+|Z26955}} * {{Z+|Z27137}} * {{Z+|Z27885}} ** {{Z+|Z30159}} * {{Z+|Z28254}} === Helpers === ;Genders * {{z+|Z26676}} * {{z+|Z30539}} * {{z+|Z28089}} * {{z+|Z26745}} * {{z+|Z23067}} * {{z+|Z26364}} * {{z+|Z25754}} * {{z+|Z20616}} == Numbers == * {{Z+|Z16437}} * {{Z+|Z26829}} == Natural language == {{Help:Type deconstruction table/Natural language}} * {{Z+|Z860}} * {{Z+|Z29958}} ** {{Z+|Z29649}} * {{Z+|Z14326}} * {{Z+|Z14321}} ** {{Z+|Z29750}} * {{Z+|Z24097}} * {{Z+|Z28282}} * {{Z+|Z33738}} * {{Z+|Z29654}} * {{Z+|Z30043}} == Monolingual text and stringset == {{Help:Type deconstruction table/Monolingual text}} {{Help:Type deconstruction table/Monolingual stringset}} * {{Z+|Z14392}} * {{Z+|Z12877}} ** {{Z+|Z33175}} ** {{Z+|Z14334}} * {{Z+|Z14396}} ** {{Z+|Z21583}} ** {{Z+|Z29749}} * {{Z+|Z19254}} * {{Z+|Z19279}} * {{Z+|Z23236}} * {{Z+|Z26107}} ** {{Z+|Z861}} * {{Z+|Z34663}} == Multilingual text and stringset == {{Help:Type deconstruction table/Multilingual text}} {{Help:Type deconstruction table/Multilingual stringset}} * {{Z+|Z19312}} * {{Z+|Z19254}} * {{Z+|Z19272}} * {{Z+|Z19279}} * {{Z+|Z23236}} * {{Z+|Z27893}} ** {{Z+|Z27905}} == Select a language and language configurator == {{Help:Type deconstruction table/Per lang config}} {{Help:Type deconstruction table/Per lang config branch}} * {{Z+|Z14310}} * {{Z+|Z14311}} * {{Z+|Z14548}} * {{Z+|Z23156}} * {{Z+|Z23159}} * {{Z+|Z23143}} == Syntactic tables (experimental) == Regarding the Type {{Z+|Z36462}} * {{Z+|Z36608}} * ''(not working 100%)'' {{Z+|Z36717}} * {{Z+|Z36613}} * {{Z+|Z36616}} * {{Z+|Z36636}} * {{Z+|Z36639}} * {{Z+|Z36644}} * {{Z+|Z36723}} * ''(not working)'' {{Z+|Z36727}} * {{Z+|Z36650}} * {{Z+|Z36652}} * {{Z+|Z36733}} * {{Z+|Z36737}} * {{Z+|Z36743}} * {{Z+|Z36747}} * Agree options === Syntactic options === Regarding the Type {{Z+|Z36463}} * {{Z+|Z36656}} * {{Z+|Z36658}} * {{Z+|Z36660}} * ''(not working 100%)'' {{Z+|Z36670}} * {{Z+|Z36662}} * {{Z+|Z36666}} === Language-specific === These should probably move or be copied on the language specific functions. ==== English ==== ===== Nouns ===== * Example noun: {{Z|Z36617}} * {{Z+|Z36607}} * {{Z+|Z36754}} * {{Z+|Z36759}} * {{Z+|Z36762}} * {{Z+|Z36766}} * {{Z+|Z36770}} ===== Determiners ===== ====== Specific determiners ====== * {{Z+|Z36781}} * {{Z+|Z36782}} * {{Z+|Z36783}} * {{Z+|Z36784}} * {{Z+|Z36791}} ====== Functions ====== * {{Z+|Z36785}} ==== German ==== * {{Z|Z36645}} [[Category:Lists of functions]] dxrft1akob9avgukdl0su2hg6q9uydx 285705 285679 2026-06-22T17:50:22Z Denny 81 /* Functions */ 285705 wikitext text/x-wiki See also the [[Wikifunctions:Catalogue/Wikidata operations|Wikidata operations]], particularly for Lexemes, Senses, and Forms. == Sentence and fragment generation == {{main|WF:NLG functions}} {{see also|WF:Abstract Wikipedia/2025 fragment experiments}} * {{Z+|Z26039}} * {{Z+|Z26095}} * {{Z+|Z26627}} * {{Z+|Z28797}} * {{Z+|Z28803}} * {{Z+|Z29743}} * {{Z+|Z31405}} * {{Z+|Z32321}} * {{Z+|Z32208}} ** {{Z+|Z32204}} * {{Z+|Z32229}} * {{Z+|Z32283}} ** {{Z+|Z32308}} * {{Z+|Z32276}} * {{Z+|Z32297}} * {{Z+|Z32326}} === Cross-lingual sentence creation === * {{Z+|Z22664}} * {{Z+|Z26955}} * {{Z+|Z27137}} * {{Z+|Z27885}} ** {{Z+|Z30159}} * {{Z+|Z28254}} === Helpers === ;Genders * {{z+|Z26676}} * {{z+|Z30539}} * {{z+|Z28089}} * {{z+|Z26745}} * {{z+|Z23067}} * {{z+|Z26364}} * {{z+|Z25754}} * {{z+|Z20616}} == Numbers == * {{Z+|Z16437}} * {{Z+|Z26829}} == Natural language == {{Help:Type deconstruction table/Natural language}} * {{Z+|Z860}} * {{Z+|Z29958}} ** {{Z+|Z29649}} * {{Z+|Z14326}} * {{Z+|Z14321}} ** {{Z+|Z29750}} * {{Z+|Z24097}} * {{Z+|Z28282}} * {{Z+|Z33738}} * {{Z+|Z29654}} * {{Z+|Z30043}} == Monolingual text and stringset == {{Help:Type deconstruction table/Monolingual text}} {{Help:Type deconstruction table/Monolingual stringset}} * {{Z+|Z14392}} * {{Z+|Z12877}} ** {{Z+|Z33175}} ** {{Z+|Z14334}} * {{Z+|Z14396}} ** {{Z+|Z21583}} ** {{Z+|Z29749}} * {{Z+|Z19254}} * {{Z+|Z19279}} * {{Z+|Z23236}} * {{Z+|Z26107}} ** {{Z+|Z861}} * {{Z+|Z34663}} == Multilingual text and stringset == {{Help:Type deconstruction table/Multilingual text}} {{Help:Type deconstruction table/Multilingual stringset}} * {{Z+|Z19312}} * {{Z+|Z19254}} * {{Z+|Z19272}} * {{Z+|Z19279}} * {{Z+|Z23236}} * {{Z+|Z27893}} ** {{Z+|Z27905}} == Select a language and language configurator == {{Help:Type deconstruction table/Per lang config}} {{Help:Type deconstruction table/Per lang config branch}} * {{Z+|Z14310}} * {{Z+|Z14311}} * {{Z+|Z14548}} * {{Z+|Z23156}} * {{Z+|Z23159}} * {{Z+|Z23143}} == Syntactic tables (experimental) == Regarding the Type {{Z+|Z36462}} * {{Z+|Z36608}} * ''(not working 100%)'' {{Z+|Z36717}} * {{Z+|Z36613}} * {{Z+|Z36616}} * {{Z+|Z36636}} * {{Z+|Z36639}} * {{Z+|Z36644}} * {{Z+|Z36723}} * ''(not working)'' {{Z+|Z36727}} * {{Z+|Z36650}} * {{Z+|Z36652}} * {{Z+|Z36733}} * {{Z+|Z36737}} * {{Z+|Z36743}} * {{Z+|Z36747}} * Agree options === Syntactic options === Regarding the Type {{Z+|Z36463}} * {{Z+|Z36656}} * {{Z+|Z36658}} * {{Z+|Z36660}} * ''(not working 100%)'' {{Z+|Z36670}} * {{Z+|Z36662}} * {{Z+|Z36666}} === Language-specific === These should probably move or be copied on the language specific functions. ==== English ==== ===== Nouns ===== * Example noun: {{Z|Z36617}} * {{Z+|Z36607}} * {{Z+|Z36754}} * {{Z+|Z36759}} * {{Z+|Z36762}} * {{Z+|Z36766}} * {{Z+|Z36770}} ===== Determiners ===== ====== Specific determiners ====== * {{Z+|Z36781}} * {{Z+|Z36782}} * {{Z+|Z36783}} * {{Z+|Z36784}} * {{Z+|Z36791}} ====== Functions ====== * {{Z+|Z36785}} * {{Z+|Z36792}} ==== German ==== * {{Z|Z36645}} [[Category:Lists of functions]] 49ncxhcx7kklw8ngdjpwe8ahlmgromq 285706 285705 2026-06-22T17:55:15Z Denny 81 /* English */ 285706 wikitext text/x-wiki See also the [[Wikifunctions:Catalogue/Wikidata operations|Wikidata operations]], particularly for Lexemes, Senses, and Forms. == Sentence and fragment generation == {{main|WF:NLG functions}} {{see also|WF:Abstract Wikipedia/2025 fragment experiments}} * {{Z+|Z26039}} * {{Z+|Z26095}} * {{Z+|Z26627}} * {{Z+|Z28797}} * {{Z+|Z28803}} * {{Z+|Z29743}} * {{Z+|Z31405}} * {{Z+|Z32321}} * {{Z+|Z32208}} ** {{Z+|Z32204}} * {{Z+|Z32229}} * {{Z+|Z32283}} ** {{Z+|Z32308}} * {{Z+|Z32276}} * {{Z+|Z32297}} * {{Z+|Z32326}} === Cross-lingual sentence creation === * {{Z+|Z22664}} * {{Z+|Z26955}} * {{Z+|Z27137}} * {{Z+|Z27885}} ** {{Z+|Z30159}} * {{Z+|Z28254}} === Helpers === ;Genders * {{z+|Z26676}} * {{z+|Z30539}} * {{z+|Z28089}} * {{z+|Z26745}} * {{z+|Z23067}} * {{z+|Z26364}} * {{z+|Z25754}} * {{z+|Z20616}} == Numbers == * {{Z+|Z16437}} * {{Z+|Z26829}} == Natural language == {{Help:Type deconstruction table/Natural language}} * {{Z+|Z860}} * {{Z+|Z29958}} ** {{Z+|Z29649}} * {{Z+|Z14326}} * {{Z+|Z14321}} ** {{Z+|Z29750}} * {{Z+|Z24097}} * {{Z+|Z28282}} * {{Z+|Z33738}} * {{Z+|Z29654}} * {{Z+|Z30043}} == Monolingual text and stringset == {{Help:Type deconstruction table/Monolingual text}} {{Help:Type deconstruction table/Monolingual stringset}} * {{Z+|Z14392}} * {{Z+|Z12877}} ** {{Z+|Z33175}} ** {{Z+|Z14334}} * {{Z+|Z14396}} ** {{Z+|Z21583}} ** {{Z+|Z29749}} * {{Z+|Z19254}} * {{Z+|Z19279}} * {{Z+|Z23236}} * {{Z+|Z26107}} ** {{Z+|Z861}} * {{Z+|Z34663}} == Multilingual text and stringset == {{Help:Type deconstruction table/Multilingual text}} {{Help:Type deconstruction table/Multilingual stringset}} * {{Z+|Z19312}} * {{Z+|Z19254}} * {{Z+|Z19272}} * {{Z+|Z19279}} * {{Z+|Z23236}} * {{Z+|Z27893}} ** {{Z+|Z27905}} == Select a language and language configurator == {{Help:Type deconstruction table/Per lang config}} {{Help:Type deconstruction table/Per lang config branch}} * {{Z+|Z14310}} * {{Z+|Z14311}} * {{Z+|Z14548}} * {{Z+|Z23156}} * {{Z+|Z23159}} * {{Z+|Z23143}} == Syntactic tables (experimental) == Regarding the Type {{Z+|Z36462}} * {{Z+|Z36608}} * ''(not working 100%)'' {{Z+|Z36717}} * {{Z+|Z36613}} * {{Z+|Z36616}} * {{Z+|Z36636}} * {{Z+|Z36639}} * {{Z+|Z36644}} * {{Z+|Z36723}} * ''(not working)'' {{Z+|Z36727}} * {{Z+|Z36650}} * {{Z+|Z36652}} * {{Z+|Z36733}} * {{Z+|Z36737}} * {{Z+|Z36743}} * {{Z+|Z36747}} * Agree options === Syntactic options === Regarding the Type {{Z+|Z36463}} * {{Z+|Z36656}} * {{Z+|Z36658}} * {{Z+|Z36660}} * ''(not working 100%)'' {{Z+|Z36670}} * {{Z+|Z36662}} * {{Z+|Z36666}} === Language-specific === These should probably move or be copied on the language specific functions. ==== English ==== ===== Nouns ===== * Example noun: {{Z|Z36617}} * {{Z+|Z36607}} * {{Z+|Z36754}} * {{Z+|Z36759}} * {{Z+|Z36762}} * {{Z+|Z36766}} * {{Z+|Z36770}} ===== Determiners ===== ====== Specific determiners ====== * {{Z+|Z36781}} * {{Z+|Z36782}} * {{Z+|Z36783}} * {{Z+|Z36784}} * {{Z+|Z36791}} ====== Functions ====== * {{Z+|Z36785}} * {{Z+|Z36792}} ===== Merge Functions ===== ==== German ==== * {{Z|Z36645}} [[Category:Lists of functions]] 3k6o5nfudfe90jy34rxhsqe5pilqpf1 285708 285706 2026-06-22T17:56:44Z Denny 81 /* Merge Functions */ 285708 wikitext text/x-wiki See also the [[Wikifunctions:Catalogue/Wikidata operations|Wikidata operations]], particularly for Lexemes, Senses, and Forms. == Sentence and fragment generation == {{main|WF:NLG functions}} {{see also|WF:Abstract Wikipedia/2025 fragment experiments}} * {{Z+|Z26039}} * {{Z+|Z26095}} * {{Z+|Z26627}} * {{Z+|Z28797}} * {{Z+|Z28803}} * {{Z+|Z29743}} * {{Z+|Z31405}} * {{Z+|Z32321}} * {{Z+|Z32208}} ** {{Z+|Z32204}} * {{Z+|Z32229}} * {{Z+|Z32283}} ** {{Z+|Z32308}} * {{Z+|Z32276}} * {{Z+|Z32297}} * {{Z+|Z32326}} === Cross-lingual sentence creation === * {{Z+|Z22664}} * {{Z+|Z26955}} * {{Z+|Z27137}} * {{Z+|Z27885}} ** {{Z+|Z30159}} * {{Z+|Z28254}} === Helpers === ;Genders * {{z+|Z26676}} * {{z+|Z30539}} * {{z+|Z28089}} * {{z+|Z26745}} * {{z+|Z23067}} * {{z+|Z26364}} * {{z+|Z25754}} * {{z+|Z20616}} == Numbers == * {{Z+|Z16437}} * {{Z+|Z26829}} == Natural language == {{Help:Type deconstruction table/Natural language}} * {{Z+|Z860}} * {{Z+|Z29958}} ** {{Z+|Z29649}} * {{Z+|Z14326}} * {{Z+|Z14321}} ** {{Z+|Z29750}} * {{Z+|Z24097}} * {{Z+|Z28282}} * {{Z+|Z33738}} * {{Z+|Z29654}} * {{Z+|Z30043}} == Monolingual text and stringset == {{Help:Type deconstruction table/Monolingual text}} {{Help:Type deconstruction table/Monolingual stringset}} * {{Z+|Z14392}} * {{Z+|Z12877}} ** {{Z+|Z33175}} ** {{Z+|Z14334}} * {{Z+|Z14396}} ** {{Z+|Z21583}} ** {{Z+|Z29749}} * {{Z+|Z19254}} * {{Z+|Z19279}} * {{Z+|Z23236}} * {{Z+|Z26107}} ** {{Z+|Z861}} * {{Z+|Z34663}} == Multilingual text and stringset == {{Help:Type deconstruction table/Multilingual text}} {{Help:Type deconstruction table/Multilingual stringset}} * {{Z+|Z19312}} * {{Z+|Z19254}} * {{Z+|Z19272}} * {{Z+|Z19279}} * {{Z+|Z23236}} * {{Z+|Z27893}} ** {{Z+|Z27905}} == Select a language and language configurator == {{Help:Type deconstruction table/Per lang config}} {{Help:Type deconstruction table/Per lang config branch}} * {{Z+|Z14310}} * {{Z+|Z14311}} * {{Z+|Z14548}} * {{Z+|Z23156}} * {{Z+|Z23159}} * {{Z+|Z23143}} == Syntactic tables (experimental) == Regarding the Type {{Z+|Z36462}} * {{Z+|Z36608}} * ''(not working 100%)'' {{Z+|Z36717}} * {{Z+|Z36613}} * {{Z+|Z36616}} * {{Z+|Z36636}} * {{Z+|Z36639}} * {{Z+|Z36644}} * {{Z+|Z36723}} * ''(not working)'' {{Z+|Z36727}} * {{Z+|Z36650}} * {{Z+|Z36652}} * {{Z+|Z36733}} * {{Z+|Z36737}} * {{Z+|Z36743}} * {{Z+|Z36747}} * Agree options === Syntactic options === Regarding the Type {{Z+|Z36463}} * {{Z+|Z36656}} * {{Z+|Z36658}} * {{Z+|Z36660}} * ''(not working 100%)'' {{Z+|Z36670}} * {{Z+|Z36662}} * {{Z+|Z36666}} === Language-specific === These should probably move or be copied on the language specific functions. ==== English ==== ===== Nouns ===== * Example noun: {{Z|Z36617}} * {{Z+|Z36607}} * {{Z+|Z36754}} * {{Z+|Z36759}} * {{Z+|Z36762}} * {{Z+|Z36766}} * {{Z+|Z36770}} ===== Determiners ===== ====== Specific determiners ====== * {{Z+|Z36781}} * {{Z+|Z36782}} * {{Z+|Z36783}} * {{Z+|Z36784}} * {{Z+|Z36791}} ====== Functions ====== * {{Z+|Z36785}} * {{Z+|Z36792}} ===== Merge Functions ===== * {{Z+|Z36798}} ==== German ==== * {{Z|Z36645}} [[Category:Lists of functions]] 6540jmon1mawdpzkn5431zieontb51z 285762 285708 2026-06-22T20:39:52Z Denny 81 /* Syntactic options */ 285762 wikitext text/x-wiki See also the [[Wikifunctions:Catalogue/Wikidata operations|Wikidata operations]], particularly for Lexemes, Senses, and Forms. == Sentence and fragment generation == {{main|WF:NLG functions}} {{see also|WF:Abstract Wikipedia/2025 fragment experiments}} * {{Z+|Z26039}} * {{Z+|Z26095}} * {{Z+|Z26627}} * {{Z+|Z28797}} * {{Z+|Z28803}} * {{Z+|Z29743}} * {{Z+|Z31405}} * {{Z+|Z32321}} * {{Z+|Z32208}} ** {{Z+|Z32204}} * {{Z+|Z32229}} * {{Z+|Z32283}} ** {{Z+|Z32308}} * {{Z+|Z32276}} * {{Z+|Z32297}} * {{Z+|Z32326}} === Cross-lingual sentence creation === * {{Z+|Z22664}} * {{Z+|Z26955}} * {{Z+|Z27137}} * {{Z+|Z27885}} ** {{Z+|Z30159}} * {{Z+|Z28254}} === Helpers === ;Genders * {{z+|Z26676}} * {{z+|Z30539}} * {{z+|Z28089}} * {{z+|Z26745}} * {{z+|Z23067}} * {{z+|Z26364}} * {{z+|Z25754}} * {{z+|Z20616}} == Numbers == * {{Z+|Z16437}} * {{Z+|Z26829}} == Natural language == {{Help:Type deconstruction table/Natural language}} * {{Z+|Z860}} * {{Z+|Z29958}} ** {{Z+|Z29649}} * {{Z+|Z14326}} * {{Z+|Z14321}} ** {{Z+|Z29750}} * {{Z+|Z24097}} * {{Z+|Z28282}} * {{Z+|Z33738}} * {{Z+|Z29654}} * {{Z+|Z30043}} == Monolingual text and stringset == {{Help:Type deconstruction table/Monolingual text}} {{Help:Type deconstruction table/Monolingual stringset}} * {{Z+|Z14392}} * {{Z+|Z12877}} ** {{Z+|Z33175}} ** {{Z+|Z14334}} * {{Z+|Z14396}} ** {{Z+|Z21583}} ** {{Z+|Z29749}} * {{Z+|Z19254}} * {{Z+|Z19279}} * {{Z+|Z23236}} * {{Z+|Z26107}} ** {{Z+|Z861}} * {{Z+|Z34663}} == Multilingual text and stringset == {{Help:Type deconstruction table/Multilingual text}} {{Help:Type deconstruction table/Multilingual stringset}} * {{Z+|Z19312}} * {{Z+|Z19254}} * {{Z+|Z19272}} * {{Z+|Z19279}} * {{Z+|Z23236}} * {{Z+|Z27893}} ** {{Z+|Z27905}} == Select a language and language configurator == {{Help:Type deconstruction table/Per lang config}} {{Help:Type deconstruction table/Per lang config branch}} * {{Z+|Z14310}} * {{Z+|Z14311}} * {{Z+|Z14548}} * {{Z+|Z23156}} * {{Z+|Z23159}} * {{Z+|Z23143}} == Syntactic tables (experimental) == Regarding the Type {{Z+|Z36462}} * {{Z+|Z36608}} * ''(not working 100%)'' {{Z+|Z36717}} * {{Z+|Z36613}} * {{Z+|Z36616}} * {{Z+|Z36636}} * {{Z+|Z36639}} * {{Z+|Z36644}} * {{Z+|Z36723}} * ''(not working)'' {{Z+|Z36727}} * {{Z+|Z36650}} * {{Z+|Z36652}} * {{Z+|Z36733}} * {{Z+|Z36737}} * {{Z+|Z36743}} * {{Z+|Z36747}} * Agree options === Syntactic options === Regarding the Type {{Z+|Z36463}} * {{Z+|Z36656}} * {{Z+|Z36658}} * {{Z+|Z36660}} * ''(not working 100%)'' {{Z+|Z36670}} * {{Z+|Z36662}} * {{Z+|Z36666}} * {{Z+|Z36816}} === Language-specific === These should probably move or be copied on the language specific functions. ==== English ==== ===== Nouns ===== * Example noun: {{Z|Z36617}} * {{Z+|Z36607}} * {{Z+|Z36754}} * {{Z+|Z36759}} * {{Z+|Z36762}} * {{Z+|Z36766}} * {{Z+|Z36770}} ===== Determiners ===== ====== Specific determiners ====== * {{Z+|Z36781}} * {{Z+|Z36782}} * {{Z+|Z36783}} * {{Z+|Z36784}} * {{Z+|Z36791}} ====== Functions ====== * {{Z+|Z36785}} * {{Z+|Z36792}} ===== Merge Functions ===== * {{Z+|Z36798}} ==== German ==== * {{Z|Z36645}} [[Category:Lists of functions]] 8dqy6wpobj81vapr0rjinpzb6veyohj 285775 285762 2026-06-22T21:13:20Z Denny 81 /* Syntactic tables (experimental) */ 285775 wikitext text/x-wiki See also the [[Wikifunctions:Catalogue/Wikidata operations|Wikidata operations]], particularly for Lexemes, Senses, and Forms. == Sentence and fragment generation == {{main|WF:NLG functions}} {{see also|WF:Abstract Wikipedia/2025 fragment experiments}} * {{Z+|Z26039}} * {{Z+|Z26095}} * {{Z+|Z26627}} * {{Z+|Z28797}} * {{Z+|Z28803}} * {{Z+|Z29743}} * {{Z+|Z31405}} * {{Z+|Z32321}} * {{Z+|Z32208}} ** {{Z+|Z32204}} * {{Z+|Z32229}} * {{Z+|Z32283}} ** {{Z+|Z32308}} * {{Z+|Z32276}} * {{Z+|Z32297}} * {{Z+|Z32326}} === Cross-lingual sentence creation === * {{Z+|Z22664}} * {{Z+|Z26955}} * {{Z+|Z27137}} * {{Z+|Z27885}} ** {{Z+|Z30159}} * {{Z+|Z28254}} === Helpers === ;Genders * {{z+|Z26676}} * {{z+|Z30539}} * {{z+|Z28089}} * {{z+|Z26745}} * {{z+|Z23067}} * {{z+|Z26364}} * {{z+|Z25754}} * {{z+|Z20616}} == Numbers == * {{Z+|Z16437}} * {{Z+|Z26829}} == Natural language == {{Help:Type deconstruction table/Natural language}} * {{Z+|Z860}} * {{Z+|Z29958}} ** {{Z+|Z29649}} * {{Z+|Z14326}} * {{Z+|Z14321}} ** {{Z+|Z29750}} * {{Z+|Z24097}} * {{Z+|Z28282}} * {{Z+|Z33738}} * {{Z+|Z29654}} * {{Z+|Z30043}} == Monolingual text and stringset == {{Help:Type deconstruction table/Monolingual text}} {{Help:Type deconstruction table/Monolingual stringset}} * {{Z+|Z14392}} * {{Z+|Z12877}} ** {{Z+|Z33175}} ** {{Z+|Z14334}} * {{Z+|Z14396}} ** {{Z+|Z21583}} ** {{Z+|Z29749}} * {{Z+|Z19254}} * {{Z+|Z19279}} * {{Z+|Z23236}} * {{Z+|Z26107}} ** {{Z+|Z861}} * {{Z+|Z34663}} == Multilingual text and stringset == {{Help:Type deconstruction table/Multilingual text}} {{Help:Type deconstruction table/Multilingual stringset}} * {{Z+|Z19312}} * {{Z+|Z19254}} * {{Z+|Z19272}} * {{Z+|Z19279}} * {{Z+|Z23236}} * {{Z+|Z27893}} ** {{Z+|Z27905}} == Select a language and language configurator == {{Help:Type deconstruction table/Per lang config}} {{Help:Type deconstruction table/Per lang config branch}} * {{Z+|Z14310}} * {{Z+|Z14311}} * {{Z+|Z14548}} * {{Z+|Z23156}} * {{Z+|Z23159}} * {{Z+|Z23143}} == Syntactic tables (experimental) == Regarding the Type {{Z+|Z36462}} * {{Z+|Z36608}} * ''(not working 100%)'' {{Z+|Z36717}} * {{Z+|Z36613}} * {{Z+|Z36616}} * {{Z+|Z36636}} * {{Z+|Z36639}} * {{Z+|Z36644}} * {{Z+|Z36723}} * ''(not working)'' {{Z+|Z36727}} * {{Z+|Z36650}} * {{Z+|Z36652}} * {{Z+|Z36733}} * {{Z+|Z36737}} * {{Z+|Z36743}} * {{Z+|Z36747}} * {{Z+|Z36823}} * Agree options === Syntactic options === Regarding the Type {{Z+|Z36463}} * {{Z+|Z36656}} * {{Z+|Z36658}} * {{Z+|Z36660}} * ''(not working 100%)'' {{Z+|Z36670}} * {{Z+|Z36662}} * {{Z+|Z36666}} * {{Z+|Z36816}} === Language-specific === These should probably move or be copied on the language specific functions. ==== English ==== ===== Nouns ===== * Example noun: {{Z|Z36617}} * {{Z+|Z36607}} * {{Z+|Z36754}} * {{Z+|Z36759}} * {{Z+|Z36762}} * {{Z+|Z36766}} * {{Z+|Z36770}} ===== Determiners ===== ====== Specific determiners ====== * {{Z+|Z36781}} * {{Z+|Z36782}} * {{Z+|Z36783}} * {{Z+|Z36784}} * {{Z+|Z36791}} ====== Functions ====== * {{Z+|Z36785}} * {{Z+|Z36792}} ===== Merge Functions ===== * {{Z+|Z36798}} ==== German ==== * {{Z|Z36645}} [[Category:Lists of functions]] k2h19mnboi49df6r523oy4aczkystr3 285778 285775 2026-06-22T21:15:13Z Denny 81 /* Syntactic tables (experimental) */ 285778 wikitext text/x-wiki See also the [[Wikifunctions:Catalogue/Wikidata operations|Wikidata operations]], particularly for Lexemes, Senses, and Forms. == Sentence and fragment generation == {{main|WF:NLG functions}} {{see also|WF:Abstract Wikipedia/2025 fragment experiments}} * {{Z+|Z26039}} * {{Z+|Z26095}} * {{Z+|Z26627}} * {{Z+|Z28797}} * {{Z+|Z28803}} * {{Z+|Z29743}} * {{Z+|Z31405}} * {{Z+|Z32321}} * {{Z+|Z32208}} ** {{Z+|Z32204}} * {{Z+|Z32229}} * {{Z+|Z32283}} ** {{Z+|Z32308}} * {{Z+|Z32276}} * {{Z+|Z32297}} * {{Z+|Z32326}} === Cross-lingual sentence creation === * {{Z+|Z22664}} * {{Z+|Z26955}} * {{Z+|Z27137}} * {{Z+|Z27885}} ** {{Z+|Z30159}} * {{Z+|Z28254}} === Helpers === ;Genders * {{z+|Z26676}} * {{z+|Z30539}} * {{z+|Z28089}} * {{z+|Z26745}} * {{z+|Z23067}} * {{z+|Z26364}} * {{z+|Z25754}} * {{z+|Z20616}} == Numbers == * {{Z+|Z16437}} * {{Z+|Z26829}} == Natural language == {{Help:Type deconstruction table/Natural language}} * {{Z+|Z860}} * {{Z+|Z29958}} ** {{Z+|Z29649}} * {{Z+|Z14326}} * {{Z+|Z14321}} ** {{Z+|Z29750}} * {{Z+|Z24097}} * {{Z+|Z28282}} * {{Z+|Z33738}} * {{Z+|Z29654}} * {{Z+|Z30043}} == Monolingual text and stringset == {{Help:Type deconstruction table/Monolingual text}} {{Help:Type deconstruction table/Monolingual stringset}} * {{Z+|Z14392}} * {{Z+|Z12877}} ** {{Z+|Z33175}} ** {{Z+|Z14334}} * {{Z+|Z14396}} ** {{Z+|Z21583}} ** {{Z+|Z29749}} * {{Z+|Z19254}} * {{Z+|Z19279}} * {{Z+|Z23236}} * {{Z+|Z26107}} ** {{Z+|Z861}} * {{Z+|Z34663}} == Multilingual text and stringset == {{Help:Type deconstruction table/Multilingual text}} {{Help:Type deconstruction table/Multilingual stringset}} * {{Z+|Z19312}} * {{Z+|Z19254}} * {{Z+|Z19272}} * {{Z+|Z19279}} * {{Z+|Z23236}} * {{Z+|Z27893}} ** {{Z+|Z27905}} == Select a language and language configurator == {{Help:Type deconstruction table/Per lang config}} {{Help:Type deconstruction table/Per lang config branch}} * {{Z+|Z14310}} * {{Z+|Z14311}} * {{Z+|Z14548}} * {{Z+|Z23156}} * {{Z+|Z23159}} * {{Z+|Z23143}} == Syntactic tables (experimental) == Regarding the Type {{Z+|Z36462}} * {{Z+|Z36608}} * ''(not working 100%)'' {{Z+|Z36717}} * {{Z+|Z36613}} * {{Z+|Z36616}} * {{Z+|Z36636}} * {{Z+|Z36639}} * {{Z+|Z36644}} * {{Z+|Z36723}} * ''(not working)'' {{Z+|Z36727}} * {{Z+|Z36650}} * {{Z+|Z36652}} * {{Z+|Z36733}} * {{Z+|Z36737}} * {{Z+|Z36743}} * {{Z+|Z36747}} * {{Z+|Z36823}} * {{Z+|Z36820}} * Agree options === Syntactic options === Regarding the Type {{Z+|Z36463}} * {{Z+|Z36656}} * {{Z+|Z36658}} * {{Z+|Z36660}} * ''(not working 100%)'' {{Z+|Z36670}} * {{Z+|Z36662}} * {{Z+|Z36666}} * {{Z+|Z36816}} === Language-specific === These should probably move or be copied on the language specific functions. ==== English ==== ===== Nouns ===== * Example noun: {{Z|Z36617}} * {{Z+|Z36607}} * {{Z+|Z36754}} * {{Z+|Z36759}} * {{Z+|Z36762}} * {{Z+|Z36766}} * {{Z+|Z36770}} ===== Determiners ===== ====== Specific determiners ====== * {{Z+|Z36781}} * {{Z+|Z36782}} * {{Z+|Z36783}} * {{Z+|Z36784}} * {{Z+|Z36791}} ====== Functions ====== * {{Z+|Z36785}} * {{Z+|Z36792}} ===== Merge Functions ===== * {{Z+|Z36798}} ==== German ==== * {{Z|Z36645}} [[Category:Lists of functions]] ch3vou0y7lz8nj235v76g5oscmkl5az 285785 285778 2026-06-22T21:26:03Z Denny 81 /* Syntactic tables (experimental) */ 285785 wikitext text/x-wiki See also the [[Wikifunctions:Catalogue/Wikidata operations|Wikidata operations]], particularly for Lexemes, Senses, and Forms. == Sentence and fragment generation == {{main|WF:NLG functions}} {{see also|WF:Abstract Wikipedia/2025 fragment experiments}} * {{Z+|Z26039}} * {{Z+|Z26095}} * {{Z+|Z26627}} * {{Z+|Z28797}} * {{Z+|Z28803}} * {{Z+|Z29743}} * {{Z+|Z31405}} * {{Z+|Z32321}} * {{Z+|Z32208}} ** {{Z+|Z32204}} * {{Z+|Z32229}} * {{Z+|Z32283}} ** {{Z+|Z32308}} * {{Z+|Z32276}} * {{Z+|Z32297}} * {{Z+|Z32326}} === Cross-lingual sentence creation === * {{Z+|Z22664}} * {{Z+|Z26955}} * {{Z+|Z27137}} * {{Z+|Z27885}} ** {{Z+|Z30159}} * {{Z+|Z28254}} === Helpers === ;Genders * {{z+|Z26676}} * {{z+|Z30539}} * {{z+|Z28089}} * {{z+|Z26745}} * {{z+|Z23067}} * {{z+|Z26364}} * {{z+|Z25754}} * {{z+|Z20616}} == Numbers == * {{Z+|Z16437}} * {{Z+|Z26829}} == Natural language == {{Help:Type deconstruction table/Natural language}} * {{Z+|Z860}} * {{Z+|Z29958}} ** {{Z+|Z29649}} * {{Z+|Z14326}} * {{Z+|Z14321}} ** {{Z+|Z29750}} * {{Z+|Z24097}} * {{Z+|Z28282}} * {{Z+|Z33738}} * {{Z+|Z29654}} * {{Z+|Z30043}} == Monolingual text and stringset == {{Help:Type deconstruction table/Monolingual text}} {{Help:Type deconstruction table/Monolingual stringset}} * {{Z+|Z14392}} * {{Z+|Z12877}} ** {{Z+|Z33175}} ** {{Z+|Z14334}} * {{Z+|Z14396}} ** {{Z+|Z21583}} ** {{Z+|Z29749}} * {{Z+|Z19254}} * {{Z+|Z19279}} * {{Z+|Z23236}} * {{Z+|Z26107}} ** {{Z+|Z861}} * {{Z+|Z34663}} == Multilingual text and stringset == {{Help:Type deconstruction table/Multilingual text}} {{Help:Type deconstruction table/Multilingual stringset}} * {{Z+|Z19312}} * {{Z+|Z19254}} * {{Z+|Z19272}} * {{Z+|Z19279}} * {{Z+|Z23236}} * {{Z+|Z27893}} ** {{Z+|Z27905}} == Select a language and language configurator == {{Help:Type deconstruction table/Per lang config}} {{Help:Type deconstruction table/Per lang config branch}} * {{Z+|Z14310}} * {{Z+|Z14311}} * {{Z+|Z14548}} * {{Z+|Z23156}} * {{Z+|Z23159}} * {{Z+|Z23143}} == Syntactic tables (experimental) == Regarding the Type {{Z+|Z36462}} * {{Z+|Z36608}} * ''(not working 100%)'' {{Z+|Z36717}} * {{Z+|Z36613}} * {{Z+|Z36616}} * {{Z+|Z36636}} * {{Z+|Z36639}} * {{Z+|Z36644}} * {{Z+|Z36723}} * ''(not working)'' {{Z+|Z36727}} * {{Z+|Z36650}} * {{Z+|Z36652}} * {{Z+|Z36733}} * {{Z+|Z36737}} * {{Z+|Z36743}} * {{Z+|Z36747}} * {{Z+|Z36823}} * {{Z+|Z36820}} * {{Z+|Z36827}} * Agree options === Syntactic options === Regarding the Type {{Z+|Z36463}} * {{Z+|Z36656}} * {{Z+|Z36658}} * {{Z+|Z36660}} * ''(not working 100%)'' {{Z+|Z36670}} * {{Z+|Z36662}} * {{Z+|Z36666}} * {{Z+|Z36816}} === Language-specific === These should probably move or be copied on the language specific functions. ==== English ==== ===== Nouns ===== * Example noun: {{Z|Z36617}} * {{Z+|Z36607}} * {{Z+|Z36754}} * {{Z+|Z36759}} * {{Z+|Z36762}} * {{Z+|Z36766}} * {{Z+|Z36770}} ===== Determiners ===== ====== Specific determiners ====== * {{Z+|Z36781}} * {{Z+|Z36782}} * {{Z+|Z36783}} * {{Z+|Z36784}} * {{Z+|Z36791}} ====== Functions ====== * {{Z+|Z36785}} * {{Z+|Z36792}} ===== Merge Functions ===== * {{Z+|Z36798}} ==== German ==== * {{Z|Z36645}} [[Category:Lists of functions]] dz9riqa2h1hi3i1h9yqst35bfgdlic2 Wikifunctions:Catalogue/Natural language operations/English 4 41934 285791 263139 2026-06-22T21:42:07Z Denny 81 /* Articles */ 285791 wikitext text/x-wiki ==Sentence and fragment generation== ===General-purpose=== * {{Z+|Z26088}} * {{Z+|Z23410}} * {{Z+|Z21765}} * {{Z+|Z26570}} * {{Z+|Z32199}} * {{Z+|Z32230}} * {{Z+|Z32244}} * {{Z+|Z32249}} ===Special use cases=== * {{Z+|Z20597}} * {{Z+|Z28784}} ==Morphology== ===Nouns and pronouns=== * {{Z+|Z11089}} * {{Z+|Z11218}} * {{Z+|Z22490}} ====Possessives==== * {{Z+|Z11302}} * {{Z+|Z19125}} ===Verbs=== * {{Z+|Z24676}} * {{Z+|Z24687}} * {{Z+|Z13177}} * {{Z+|Z13087}} ===Adjectives and adverbs=== * {{Z+|Z11795}} * {{Z+|Z12203}} ** {{Z+|Z29851}} *** {{Z+|Z29852}} ===Articles=== * {{Z+|Z21739}} ** {{Z+|Z32314}} * {{Z+|Z32935}} * {{Z+|Z32929}} ===Word derivation=== * {{Z+|Z11390}} * {{Z+|Z11646}} * {{Z+|Z13280}} * {{Z+|Z13262}} ===Other=== * {{Z+|Z13254}} ==Numbers== * {{Z+|Z13587}} * {{Z+|Z14526}} * {{Z+|Z13596}} * {{Z+|Z14726}} * {{Z+|Z14531}} * {{Z+|Z14523}} ==Other== * {{Z+|Z23827}} * {{Z+|Z18852}} * {{Z+|Z18859}} [[Category:Lists of functions]] [[Category:English]] 4mej5b7behyf43h19p6vio39b3csexy Z20707 0 44473 285639 168712 2026-06-22T13:43:45Z Strobilomyces 193 Example in description 285639 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z20707" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z6005", "Z17K2": "Z20707K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "noun" }, { "Z1K1": "Z11", "Z11K1": "Z1004", "Z11K2": "nom" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z6005", "Z17K2": "Z20707K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "adjective" }, { "Z1K1": "Z11", "Z11K1": "Z1004", "Z11K2": "adjectif" } ] } } ], "Z8K2": "Z6", "Z8K3": [ "Z20", "Z20713", "Z20717" ], "Z8K4": [ "Z14", "Z20726" ], "Z8K5": "Z20707" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Spanish indef noun phrase" }, { "Z1K1": "Z11", "Z11K1": "Z1004", "Z11K2": "phrase nominale indéfinie en espagnol" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Creates an indefinite noun phrase in Spanish using Wikidata Lexemes. Example: un plátano maduro\n" }, { "Z1K1": "Z11", "Z11K1": "Z1004", "Z11K2": "créé une phrase nominale indéfinie en espagnol, en utilisant les lexèmes Wikidata" } ] } } 8auijme18uucyhfp3f4edqqs5v8et3a Wikifunctions:Type proposals/Geometrical point 4 56108 285662 263750 2026-06-22T16:53:11Z So9q 3791 /* Comments */ Reply 285662 wikitext text/x-wiki == Summary == A big field of functions currently is absent from Wikifunctions - geometrical functions. We already have number functions and trigonometrical functions, but not geometrical. This type could be used in such functions as, for example, rotate point relative to another point by given angle; get the angle between three points; get the middle point between two points. Further object types could be created based on this one: segment, polygon, circle, surface, sphere. Other types to be created after this one: vector, line, curve, plane. == Structure == This object type should consist of two real numbers, maybe three: representing a position along x, y and z axis. === Example values === Value … {|class="wikitable" style="margin:.6em 1.6em" |- | <syntaxhighlight lang="json" line="line">{   "type": "point", "value": "x" { "type": "float64" }, "value": "y" { "type": "float64" }, "value": "z" { "type": "float64" }, }</syntaxhighlight> |} == Identity == Two points are the same if each of their coordinates (x, y, z) are the same == Display function == ''How would a value of this type be displayed on Wikifunctions'' <code>Point(12.34, -56.78)</code> == Comments == * {{s}} as proposer. --[[User:Tohaomg|Tohaomg]] ([[User talk:Tohaomg|talk]]) 16:33, 3 May 2025 (UTC)--sign here * {{s}} integral for many potential future functions. [[User:Diamondarmorstev|Diamondarmorstev]] ([[User talk:Diamondarmorstev|talk]]) 00:59, 30 September 2025 (UTC) * If the type is limited to 2D, it would be better served by [[WF:Type_proposals/complex128]]. If it's N-dimensional, just use lists like the few vector (matrix) functions that already exist. [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 19:15, 27 November 2025 (UTC) * {{o}} on the basis of strong preference towards the use of rational numbers [[User:Feeglgeef|Feeglgeef]] ([[User talk:Feeglgeef|talk]]) 14:02, 7 April 2026 (UTC) *:Would you be willing to propose a new point-type with rational numbers? [[User:So9q|So9q]] ([[User talk:So9q|talk]]) 16:53, 22 June 2026 (UTC) : {{o}} per YoshiRulz. [[User:JJPMaster|JJP]]<sub>[[User talk:JJPMaster|Mas]]<sub>[[Special:Contributions/JJPMaster|ter]]</sub></sub> ([[wikt:she|she]]/[[wikt:they|they]]) 14:11, 7 April 2026 (UTC) 0w24tgym4a2wg5uzlpkcgnlyv0xan71 Z25326 0 58864 285883 285423 2026-06-23T06:50:38Z 99of9 1622 nudge 285883 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z25326" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z6010", "Z17K2": "Z25326K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "quantity" }, { "Z1K1": "Z11", "Z11K1": "Z1787", "Z11K2": "quantità Wikidata" }, { "Z1K1": "Z11", "Z11K1": "Z1078", "Z11K2": "kuantitas" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z60", "Z17K2": "Z25326K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "language to display unit in" }, { "Z1K1": "Z11", "Z11K1": "Z1787", "Z11K2": "lingua" }, { "Z1K1": "Z11", "Z11K1": "Z1078", "Z11K2": "bahasa yang menampilkan" } ] } } ], "Z8K2": "Z6", "Z8K3": [ "Z20", "Z25327", "Z25328", "Z25329", "Z25330", "Z25331", "Z25332", "Z25333", "Z25654", "Z25655", "Z26192", "Z26800", "Z28355", "Z28959", "Z36686", "Z36714" ], "Z8K4": [ "Z14", "Z36713", "Z25355" ], "Z8K5": "Z25326" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "display quantity with digits and unit" }, { "Z1K1": "Z11", "Z11K1": "Z1787", "Z11K2": "formatta quantità Wikidata con cifre arabe e unità" }, { "Z1K1": "Z11", "Z11K1": "Z1078", "Z11K2": "tampilkan kuantitas dengan digit dan unit" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31", { "Z1K1": "Z31", "Z31K1": "Z1787", "Z31K2": [ "Z6", "stampa quantità Wikidata", "mostra quantità Wikidata" ] }, { "Z1K1": "Z31", "Z31K1": "Z1002", "Z31K2": [ "Z6", "quantity with digits and unit", "show quantity", "render quantity", "display quantity", "quantity renderer", "display Wikidata quantity", "render Wikidata quantity", "display quantity with units", "quantity display", "show quantity with digits and unit", "display value with digits and units", "quantity with short unit or fallback", "quantity to string" ] }, { "Z1K1": "Z31", "Z31K1": "Z1078", "Z31K2": [ "Z6", "kuantitas dengan digit dan unit", "tampilkan kuantitas", "rekacitra kuantitas", "perekacitra kuantitas", "baca kuantitas Wikidata" ] } ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Simplest accurate representation where possible. Use English language conventions (for now) and fallback if the units are missing in the selected language" }, { "Z1K1": "Z11", "Z11K1": "Z1787", "Z11K2": "Rappresentazione accurata più semplice dove possibile. Usa l'Inglese come lingua di fallback (per ora) se le unità mancano nella lingua selezionata" }, { "Z1K1": "Z11", "Z11K1": "Z1078", "Z11K2": "Representasi paling sederhana dan mudah. Menggunakan konvensi bahasa Inggris dan cadangan (untuk sekarang) jika unit hilang pada bahasa yang dipilih." } ] } } 6zuwtbo1w2gqi7tmfpqnv83qvaegduf 285887 285883 2026-06-23T07:15:55Z 99of9 1622 Added Z36859 to the approved list of test cases 285887 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z25326" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z6010", "Z17K2": "Z25326K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "quantity" }, { "Z1K1": "Z11", "Z11K1": "Z1787", "Z11K2": "quantità Wikidata" }, { "Z1K1": "Z11", "Z11K1": "Z1078", "Z11K2": "kuantitas" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z60", "Z17K2": "Z25326K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "language to display unit in" }, { "Z1K1": "Z11", "Z11K1": "Z1787", "Z11K2": "lingua" }, { "Z1K1": "Z11", "Z11K1": "Z1078", "Z11K2": "bahasa yang menampilkan" } ] } } ], "Z8K2": "Z6", "Z8K3": [ "Z20", "Z25327", "Z25328", "Z25329", "Z25330", "Z25331", "Z25332", "Z25333", "Z25654", "Z25655", "Z26192", "Z26800", "Z28355", "Z28959", "Z36686", "Z36714", "Z36859" ], "Z8K4": [ "Z14", "Z36713", "Z25355" ], "Z8K5": "Z25326" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "display quantity with digits and unit" }, { "Z1K1": "Z11", "Z11K1": "Z1787", "Z11K2": "formatta quantità Wikidata con cifre arabe e unità" }, { "Z1K1": "Z11", "Z11K1": "Z1078", "Z11K2": "tampilkan kuantitas dengan digit dan unit" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31", { "Z1K1": "Z31", "Z31K1": "Z1787", "Z31K2": [ "Z6", "stampa quantità Wikidata", "mostra quantità Wikidata" ] }, { "Z1K1": "Z31", "Z31K1": "Z1002", "Z31K2": [ "Z6", "quantity with digits and unit", "show quantity", "render quantity", "display quantity", "quantity renderer", "display Wikidata quantity", "render Wikidata quantity", "display quantity with units", "quantity display", "show quantity with digits and unit", "display value with digits and units", "quantity with short unit or fallback", "quantity to string" ] }, { "Z1K1": "Z31", "Z31K1": "Z1078", "Z31K2": [ "Z6", "kuantitas dengan digit dan unit", "tampilkan kuantitas", "rekacitra kuantitas", "perekacitra kuantitas", "baca kuantitas Wikidata" ] } ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Simplest accurate representation where possible. Use English language conventions (for now) and fallback if the units are missing in the selected language" }, { "Z1K1": "Z11", "Z11K1": "Z1787", "Z11K2": "Rappresentazione accurata più semplice dove possibile. Usa l'Inglese come lingua di fallback (per ora) se le unità mancano nella lingua selezionata" }, { "Z1K1": "Z11", "Z11K1": "Z1078", "Z11K2": "Representasi paling sederhana dan mudah. Menggunakan konvensi bahasa Inggris dan cadangan (untuk sekarang) jika unit hilang pada bahasa yang dipilih." } ] } } iahy1n5wamu9lg8cuh6qfi8z5ec8qex Z25785 0 59821 285843 285350 2026-06-23T05:03:19Z 99of9 1622 nudge 285843 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z25785" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z6", "Z17K2": "Z25785K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "string representing quantity to read" }, { "Z1K1": "Z11", "Z11K1": "Z1787", "Z11K2": "input" }, { "Z1K1": "Z11", "Z11K1": "Z1078", "Z11K2": "untaian kuantitas yang dibaca" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z60", "Z17K2": "Z25785K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "language to read in" }, { "Z1K1": "Z11", "Z11K1": "Z1787", "Z11K2": "lingua" }, { "Z1K1": "Z11", "Z11K1": "Z1078", "Z11K2": "bahasa yang membaca" } ] } } ], "Z8K2": "Z6010", "Z8K3": [ "Z20", "Z25786", "Z25787", "Z25788", "Z25790", "Z25791", "Z26409", "Z26198", "Z26197", "Z27171", "Z26801", "Z25922", "Z25921", "Z27681", "Z36688" ], "Z8K4": [ "Z14", "Z25866" ], "Z8K5": "Z25785" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "read Wikidata quantity" }, { "Z1K1": "Z11", "Z11K1": "Z1787", "Z11K2": "leggi Quantità Wikidata" }, { "Z1K1": "Z11", "Z11K1": "Z1078", "Z11K2": "baca kuantitas Wikidata" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31", { "Z1K1": "Z31", "Z31K1": "Z1002", "Z31K2": [ "Z6", "read quantity", "quantity parser", "parse quantity", "parse Wikidata quantity", "Wikidata quantity parser", "enter quantity", "read value with unit", "get quantity from string", "string to Wikidata quantity", "string to quantity" ] }, { "Z1K1": "Z31", "Z31K1": "Z1078", "Z31K2": [ "Z6", "baca kuantitas", "pengurai kuantitas" ] } ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "takes a string input and converts it to a Wikidata quantity object." } ] } } cc8gv9aqd0m02y34fnjun2wxfw9zse7 Z26337 0 61237 285636 211478 2026-06-22T13:25:49Z Strobilomyces 193 + en description 285636 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z26337" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z6091", "Z17K2": "Z26337K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1003", "Z11K2": "Entidad" }, { "Z1K1": "Z11", "Z11K1": "Z1004", "Z11K2": "entité" }, { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "entity" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z6091", "Z17K2": "Z26337K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1003", "Z11K2": "Clase" }, { "Z1K1": "Z11", "Z11K1": "Z1004", "Z11K2": "classé" }, { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "class" } ] } } ], "Z8K2": "Z6", "Z8K3": [ "Z20", "Z26339" ], "Z8K4": [ "Z14", "Z26338" ], "Z8K5": "Z26337" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1003", "Z11K2": "Fragmento de instanciación sin artículo" }, { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Spanish article-less instantiating sentence" }, { "Z1K1": "Z11", "Z11K1": "Z1004", "Z11K2": "création d'une phrase sans article en espagnol" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1003", "Z11K2": "Por ejemplo: \"Madrid es una ciudad.\"" }, { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Example: Francia es un país." } ] } } h7k3gr2t9tkff7kiixe8xkfi342o5f3 Z29624 0 68839 285884 277421 2026-06-23T07:00:05Z 99of9 1622 no need to specify languages 285884 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z29624" }, "Z2K2": { "Z1K1": "Z14", "Z14K1": "Z29623", "Z14K2": { "Z1K1": "Z7", "Z7K1": "Z23543", "Z23543K1": { "Z1K1": "Z7", "Z7K1": "Z30120", "Z30120K1": { "Z1K1": "Z18", "Z18K1": "Z29623K1" }, "Z30120K2": [ "Z6030", "Z6036" ], "Z30120K3": [ "Z60" ], "Z30120K4": [ "Z6092", { "Z1K1": "Z6092", "Z6092K1": "P31" } ] } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "item (QID) is instance of these [QIDs], compose" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } fp2gnf2fjq4z7jmyswh21hbjyiqzgpq Wikifunctions:Catalogue/HTML operations 4 69531 285755 280462 2026-06-22T20:24:35Z Denny 81 /* Concatenation */ 285755 wikitext text/x-wiki Functions that are directly related to [[Help:HTML_fragments|HTML fragments]]. ==Comparison and evaluation== {{Help:Comparison function table/HTML fragment}} * {{Z+|Z877}} * {{Z+|Z29045}} * {{Z+|Z29572}} ** {{Z+|Z29576}} ==Conversion== {{Help:Type deconstruction table/HTML fragment}} * {{Z+|Z27854}} * {{Z+|Z27861}} * {{Z+|Z33470}} ** {{Z+|Z27868}} ** {{Z+|Z19384}} ==Transformation== ===Concatenation=== * {{Z+|Z27849}} ** {{Z+|Z27926}} ** {{Z+|Z35766}} ** {{Z+|Z36810}} ** {{Z+|Z32149}} *{{Z+|Z32234}} ===Tag wrapping=== * {{Z+|Z27873}} ** {{Z+|Z33470}} *** {{Z+|Z33457}} ** {{Z+|Z35049}} * {{Z+|Z30058}} * {{Z+|Z29582}} ===Text and element styling=== * {{Z+|Z29052}} * {{Z+|Z28914}} * {{Z+|Z31729}} * {{Z+|Z32925}} ===Other=== * {{Z+|Z27932}} ==Page elements== ===Headers and sections=== * {{Z+|Z31465}} ** {{Z+|Z32145}} ===Paragraphs and lists=== *{{Z+|Z32123}} ** {{Z+|Z32163}} ** {{Z+|Z33068}} * {{Z+|Z32179}} * {{Z+|Z32180}} ** {{Z+|Z32215}} ===Links and buttons=== * {{Z+|Z30016}} * {{Z+|Z31697}} ** {{Z+|Z29588}} * {{Z+|Z28904}} * {{Z+|Z30954}} ===Images=== * {{Z+|Z36038}} === References and citations === {{Seealso|Wikifunctions:Catalogue/Wikidata_operations/Item#Citations}} * {{Z+|Z31906}} * {{Z+|Z31917}} * {{Z+|Z31921}} * {{Z+|Z32053}} ===Tables=== * {{Z+|Z35017}} * {{Z+|Z27878}} * {{Z+|Z23293}} * {{Z+|Z29580}} ==Linguistic applications== * {{Z+|Z26333}} * {{Z+|Z29055}} * {{Z+|Z28602}} ** {{Z+|Z28928}} * {{Z+|Z29488}} **{{Z+|Z29557}} * {{Z+|Z29186}} ==Sentence and fragment generation== * {{Z+|Z32962}} [[Category:Lists of functions]] dvayokus66nihce6ex977ch3dzyek4l 285895 285755 2026-06-23T08:53:30Z Denny 81 /* Conversion */ 285895 wikitext text/x-wiki Functions that are directly related to [[Help:HTML_fragments|HTML fragments]]. ==Comparison and evaluation== {{Help:Comparison function table/HTML fragment}} * {{Z+|Z877}} * {{Z+|Z29045}} * {{Z+|Z29572}} ** {{Z+|Z29576}} ==Conversion== {{Help:Type deconstruction table/HTML fragment}} * {{Z+|Z27854}} * {{Z+|Z27861}} * {{Z+|Z36839}} * {{Z+|Z33470}} ** {{Z+|Z27868}} ** {{Z+|Z19384}} ==Transformation== ===Concatenation=== * {{Z+|Z27849}} ** {{Z+|Z27926}} ** {{Z+|Z35766}} ** {{Z+|Z36810}} ** {{Z+|Z32149}} *{{Z+|Z32234}} ===Tag wrapping=== * {{Z+|Z27873}} ** {{Z+|Z33470}} *** {{Z+|Z33457}} ** {{Z+|Z35049}} * {{Z+|Z30058}} * {{Z+|Z29582}} ===Text and element styling=== * {{Z+|Z29052}} * {{Z+|Z28914}} * {{Z+|Z31729}} * {{Z+|Z32925}} ===Other=== * {{Z+|Z27932}} ==Page elements== ===Headers and sections=== * {{Z+|Z31465}} ** {{Z+|Z32145}} ===Paragraphs and lists=== *{{Z+|Z32123}} ** {{Z+|Z32163}} ** {{Z+|Z33068}} * {{Z+|Z32179}} * {{Z+|Z32180}} ** {{Z+|Z32215}} ===Links and buttons=== * {{Z+|Z30016}} * {{Z+|Z31697}} ** {{Z+|Z29588}} * {{Z+|Z28904}} * {{Z+|Z30954}} ===Images=== * {{Z+|Z36038}} === References and citations === {{Seealso|Wikifunctions:Catalogue/Wikidata_operations/Item#Citations}} * {{Z+|Z31906}} * {{Z+|Z31917}} * {{Z+|Z31921}} * {{Z+|Z32053}} ===Tables=== * {{Z+|Z35017}} * {{Z+|Z27878}} * {{Z+|Z23293}} * {{Z+|Z29580}} ==Linguistic applications== * {{Z+|Z26333}} * {{Z+|Z29055}} * {{Z+|Z28602}} ** {{Z+|Z28928}} * {{Z+|Z29488}} **{{Z+|Z29557}} * {{Z+|Z29186}} ==Sentence and fragment generation== * {{Z+|Z32962}} [[Category:Lists of functions]] sy5j0skk6fwxyz57rcsq7jz0azquy1c 285900 285895 2026-06-23T10:14:47Z 99of9 1622 /* Text and element styling */ tag removal 285900 wikitext text/x-wiki Functions that are directly related to [[Help:HTML_fragments|HTML fragments]]. ==Comparison and evaluation== {{Help:Comparison function table/HTML fragment}} * {{Z+|Z877}} * {{Z+|Z29045}} * {{Z+|Z29572}} ** {{Z+|Z29576}} ==Conversion== {{Help:Type deconstruction table/HTML fragment}} * {{Z+|Z27854}} * {{Z+|Z27861}} * {{Z+|Z36839}} * {{Z+|Z33470}} ** {{Z+|Z27868}} ** {{Z+|Z19384}} ==Transformation== ===Concatenation=== * {{Z+|Z27849}} ** {{Z+|Z27926}} ** {{Z+|Z35766}} ** {{Z+|Z36810}} ** {{Z+|Z32149}} *{{Z+|Z32234}} ===Tag wrapping=== * {{Z+|Z27873}} ** {{Z+|Z33470}} *** {{Z+|Z33457}} ** {{Z+|Z35049}} * {{Z+|Z30058}} * {{Z+|Z29582}} ===Tag removal=== * {{Z+|Z36853}} * {{Z+|Z36831}} ===Text and element styling=== * {{Z+|Z29052}} * {{Z+|Z28914}} * {{Z+|Z31729}} * {{Z+|Z32925}} ===Other=== * {{Z+|Z27932}} ==Page elements== ===Headers and sections=== * {{Z+|Z31465}} ** {{Z+|Z32145}} ===Paragraphs and lists=== *{{Z+|Z32123}} ** {{Z+|Z32163}} ** {{Z+|Z33068}} * {{Z+|Z32179}} * {{Z+|Z32180}} ** {{Z+|Z32215}} ===Links and buttons=== * {{Z+|Z30016}} * {{Z+|Z31697}} ** {{Z+|Z29588}} * {{Z+|Z28904}} * {{Z+|Z30954}} ===Images=== * {{Z+|Z36038}} === References and citations === {{Seealso|Wikifunctions:Catalogue/Wikidata_operations/Item#Citations}} * {{Z+|Z31906}} * {{Z+|Z31917}} * {{Z+|Z31921}} * {{Z+|Z32053}} ===Tables=== * {{Z+|Z35017}} * {{Z+|Z27878}} * {{Z+|Z23293}} * {{Z+|Z29580}} ==Linguistic applications== * {{Z+|Z26333}} * {{Z+|Z29055}} * {{Z+|Z28602}} ** {{Z+|Z28928}} * {{Z+|Z29488}} **{{Z+|Z29557}} * {{Z+|Z29186}} ==Sentence and fragment generation== * {{Z+|Z32962}} [[Category:Lists of functions]] f447s165hwnhmt1byv5egmx297jlwtn Z30798 0 71205 285867 278214 2026-06-23T06:13:02Z 99of9 1622 Added Z30800 to the approved list of test cases 285867 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z30798" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z6091", "Z17K2": "Z30798K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "location" } ] } } ], "Z8K2": "Z6", "Z8K3": [ "Z20", "Z30799", "Z30801", "Z30802", "Z30803", "Z30800" ], "Z8K4": [ "Z14", "Z30804" ], "Z8K5": "Z30798" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "English preposition for location (\"in\"/\"on\"/\"at\")" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31", { "Z1K1": "Z31", "Z31K1": "Z1002", "Z31K2": [ "Z6", "in/on/at", "on/in/at", "location preposition", "preposition for item" ] } ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } 6v3uf4no5gljg7mexvzw75goh7s3prc 285870 285867 2026-06-23T06:17:29Z 99of9 1622 Added Z35661 to the approved list of test cases 285870 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z30798" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z6091", "Z17K2": "Z30798K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "location" } ] } } ], "Z8K2": "Z6", "Z8K3": [ "Z20", "Z30799", "Z30801", "Z30802", "Z30803", "Z30800", "Z35661" ], "Z8K4": [ "Z14", "Z30804" ], "Z8K5": "Z30798" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "English preposition for location (\"in\"/\"on\"/\"at\")" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31", { "Z1K1": "Z31", "Z31K1": "Z1002", "Z31K2": [ "Z6", "in/on/at", "on/in/at", "location preposition", "preposition for item" ] } ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } fwspnibcgzv4bmwk9xnoj7d6jlujag0 Z30804 0 71211 285868 237422 2026-06-23T06:14:52Z 99of9 1622 selective fetch 285868 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z30804" }, "Z2K2": { "Z1K1": "Z14", "Z14K1": "Z30798", "Z14K2": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z23120", "Z23120K1": { "Z1K1": "Z7", "Z7K1": "Z22865", "Z22865K1": { "Z1K1": "Z7", "Z7K1": "Z22978", "Z22978K1": { "Z1K1": "Z7", "Z7K1": "Z30120", "Z30120K1": { "Z1K1": "Z18", "Z18K1": "Z30798K1" }, "Z30120K2": [ "Z6030", "Z6036" ], "Z30120K3": [ "Z60" ], "Z30120K4": [ "Z6092", { "Z1K1": "Z6092", "Z6092K1": "P31" } ] }, "Z22978K2": { "Z1K1": "Z6092", "Z6092K1": "P31" } }, "Z22865K2": [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q634" }, { "Z1K1": "Z6091", "Z6091K1": "Q1402592" } ] } }, "Z802K2": "on", "Z802K3": "in" } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "en preposition for location, simple composition" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } 1jjmtdsyj9mz4tsp7lw7j364za406ch 285869 285868 2026-06-23T06:16:30Z 99of9 1622 since Earth isn't directly a P31 planet 285869 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z30804" }, "Z2K2": { "Z1K1": "Z14", "Z14K1": "Z30798", "Z14K2": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z23120", "Z23120K1": { "Z1K1": "Z7", "Z7K1": "Z22865", "Z22865K1": { "Z1K1": "Z7", "Z7K1": "Z22978", "Z22978K1": { "Z1K1": "Z7", "Z7K1": "Z30120", "Z30120K1": { "Z1K1": "Z18", "Z18K1": "Z30798K1" }, "Z30120K2": [ "Z6030", "Z6036" ], "Z30120K3": [ "Z60" ], "Z30120K4": [ "Z6092", { "Z1K1": "Z6092", "Z6092K1": "P31" } ] }, "Z22978K2": { "Z1K1": "Z6092", "Z6092K1": "P31" } }, "Z22865K2": [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q634" }, { "Z1K1": "Z6091", "Z6091K1": "Q1402592" }, { "Z1K1": "Z6091", "Z6091K1": "Q3504248" } ] } }, "Z802K2": "on", "Z802K3": "in" } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "en preposition for location, simple composition" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } 79dkr47ojv266p45u3g8veitw0v15ql Wikifunctions:Human languages/Z1062 4 79186 285906 261122 2026-06-23T11:07:17Z Mormegil 150 better map 285906 wikitext text/x-wiki [[File:Czech language distribution.jpg|thumb|Czech language distribution map]] '''Czech''' ([[Z1062]], [[d:Q9056|Q9056]], code <code>cs</code>) is a West Slavic language. == Grammatical features used == * {{Z|Z25501}} (+ {{Z|Z26935}} for masculine gender) * {{Z|Z26934}} * ''TBD'' – grammatical tense (past/present/future) * ''TBD'' – grammatical case (nom/gen/dat/acc/voc/loc/ins) == Functions == {{Main|Wikifunctions:Catalogue/Natural language operations/Czech}} [[Category:Czech| ]] t9ctbw5ke0jpm5c3sahon3b3yvofg53 Wikifunctions:Type proposals/Syntactic table 4 79588 285624 284188 2026-06-22T13:05:23Z Denny 81 /* Comments */ Reply 285624 wikitext text/x-wiki : ''Experimentally implemented'': {{Z+|Z36462}} --[[User:DVrandecic (WMF)|DVrandecic (WMF)]] ([[User talk:DVrandecic (WMF)|talk]]) 12:49, 17 June 2026 (UTC) One aim of the NLG system is to have a small number of language-specific functions. It is OK to have many abstract functions, but the specific languages should ideally be less numerous. For example, consider the following six outputs: # Brač is an island. # Brač is a beautiful island. # Brač is a beautiful [[:en:Island|island]]. # '''Brač''' is an island. # '''Brač''' is a beautiful island. # '''Brač''' is a beautiful [[:en:Island|island]]. How many language-specific functions would that need? If I look at the current best practices, I seem to land on six language-specific functions, one for each output. Even though grammatically there seem to be only two major operations: * Connect two noun phrases in a predicative sentence: Brač is an island * Combine an adjective and a noun to form a noun phrase: a beautiful island Besides that, we would have functions to turn a phrase into a link or to give strong emphasis to a phrase, but do these need to be language-specific? I think not. We seem to have all the necessary pieces for the outputs already available: * <code>Indefinite noun phrase with adjective</code>: a beautiful island ([https://www.wikifunctions.org/wiki/Z22664?call=%7B%22Z1K1%22%3A%22Z7%22%2C%22Z7K1%22%3A%22Z22664%22%2C%22Z22664K1%22%3A%7B%22Z1K1%22%3A%22Z6091%22%2C%22Z6091K1%22%3A%22Q23442%22%7D%2C%22Z22664K2%22%3A%7B%22Z1K1%22%3A%22Z6091%22%2C%22Z6091K1%22%3A%22Q7242%22%7D%2C%22Z22664K3%22%3A%22Z1002%22%7D function call]) * <code>Article-less instantiating fragment</code>: Brač is an island. ([https://www.wikifunctions.org/wiki/Z26039?call=%7B%22Z1K1%22%3A%22Z7%22%2C%22Z7K1%22%3A%22Z26039%22%2C%22Z26039K1%22%3A%7B%22Z1K1%22%3A%22Z6091%22%2C%22Z6091K1%22%3A%22Q922%22%7D%2C%22Z26039K2%22%3A%7B%22Z1K1%22%3A%22Z6091%22%2C%22Z6091K1%22%3A%22Q23442%22%7D%2C%22Z26039K3%22%3A%22Z1002%22%7D function call]) * <code>Strong importance</code>: '''Brač''' ([https://www.wikifunctions.org/view/en/Z28914?call=%7B%22Z1K1%22%3A%22Z7%22%2C%22Z7K1%22%3A%22Z28914%22%2C%22Z28914K1%22%3A%22Bra%C4%8D%22%7D function call]) * <code>HTML link to Wikipedia article about Wikidata item</code>: [[:en:Island|island]] ([https://www.wikifunctions.org/view/en/Z29588?call=%7B%22Z1K1%22%3A%22Z7%22%2C%22Z7K1%22%3A%22Z29588%22%2C%22Z29588K1%22%3A%22Z1002%22%2C%22Z29588K2%22%3A%7B%22Z1K1%22%3A%22Z6091%22%2C%22Z6091K1%22%3A%22Q23442%22%7D%7D function call]) But it is currently not possible to plug these together to allow for the creation of the outputs above, beyond the first one. That’s partially because of the involved types: * <code>indefinite noun phrase with adjective</code> takes two <code>Wikidata item references</code> and a <code>language</code> and returns a <code>string</code> * <code>article-less instantiating fragment</code> does the same * <code>Strong importance</code> takes a <code>string</code> and returns an <code>HTML fragment</code> * <code>HTML link to Wikipedia article about Wikidata item</code> takes a <code>language</code> and a <code>Wikidata item reference</code> and returns an <code>HTML fragment</code> It seems that what we would want to do is the following (the language parameter has been omitted for legibility): # <code>instantiating( Brač, island )</code> # <code>instantiating( Brač, noun with adjective( island, beauty ) )</code> # <code>instantiating( Brač, noun with adjective( link( island ), beauty ) )</code> # <code>instantiating( strong( Brač ), island )</code> # <code>instantiating( strong( Brač ), noun with adjective( island, beauty ) )</code> # <code>instantiating( strong( Brač ), noun with adjective( link( island ), beauty ) )</code> If we want to be able to do this, the type of <code>Brač</code> and the return type of <code>strong</code> must be the same, as well as the type of <code>island</code> and the return types of <code>link</code> and <code>noun with adjective</code>. What could that type be? In English, as usual, we may get seduced to a certain simplicity: we could probably just use <code>HTML fragment</code> as the type and probably get away with it! All of the operations above seem to work out. But in French (or Italian or Spanish or many other languages) that wouldn’t work: <code>noun with adjective</code> needs to know the gender of the noun in order to select the right form of the adjective (the adjective and the noun need to agree with each other). HTML fragment does not provide that information. I don’t think that there currently is a good type for that. I suggest introducing a new type, the <code>syntactic table</code>. This is inspired by [[:en:Grammatical Framework (programming language)|Grammatical Framework]], and in core similar to a [[Wikifunctions:Type proposals/Syntactic type|proposal I made last year]], but I learned a lot from the comments and modified the type accordingly, making it considerably simpler. <code>Syntactic table</code> has the following four keys: # <code>Language</code>, i.e. which <code>natural language</code> is this table for # <code>Part of speech</code>, i.e. which part of speech is this (noun, noun phrase, verb, adjective, etc.) (is this a lightweight enumeration or a <code>Wikidata item reference</code>?) # <code>Inherent features</code>, <code>list</code> of <code>Wikidata item references</code> representing grammatical features, e.g. <code>masculine</code>, <code>plural</code>, etc. # <code>Options</code>, a <code>list</code> of <code>pairs</code> of a <code>list</code> of <code>Wikidata item references</code> (representing grammatical features) and a <code>list</code> of <code>HTML fragments</code> Or, do visualize it, here is a visualization of the syntactic table for the German noun ''“Stadt”'', meaning ''city''. {| class="wikitable" |'''''language''''' | colspan="4" |German |- |'''''Part of speech''''' | colspan="4" |noun |- |'''''Inherent feature''''' | colspan="4" |feminine |- |'''''options''''' |'''nominative''' |'''genitive''' |'''dative''' |'''accusative''' |- |'''singular''' |Stadt |Stadt |Stadt |Stadt |- |'''plural''' |Städte |Städte |Städten |Städte |} And here is a partial visualization of the syntactic table for the German adjective ''“schön”'', meaning ''beautiful''. {| class="wikitable" |'''''language''''' | colspan="4" |German |- |'''''Part of speech''''' | colspan="4" |adjective |- |'''''Inherent feature''''' | colspan="4" |— |- | rowspan="2" |'''''options''''' | colspan="3" |'''singular''' | rowspan="2" |'''plural''' |- |'''masculine''' |'''feminine''' |'''neuter''' |- |'''nominative''' |schöner |schöne |schönes |schönen |- |'''genitive''' |schönen |schönen |schönen |schönen |- |'''dative''' |schönen |schönen |schönen |schönen |- |'''accusative''' |schönen |schöne |schönes |schönen |} Now there would be a number of functions working on <code>syntactic tables</code>: for example, the <code>merge</code> function, which takes two tables and returns a table, representing the merger. The inherent features of each of the tables are used to filter the options in each other tables. In addition, the options are combined together to create a new map of forms. So the result of the merging the two tables with a simple spaced concatenation would be: {| class="wikitable" |'''''language''''' | colspan="4" |German |- |'''''Part of speech''''' | colspan="4" |core noun phrase |- |'''''Inherent feature''''' | colspan="4" |feminine |- |'''''options''''' |'''nominative''' |'''genitive''' |'''dative''' |'''accusative''' |- |'''singular''' |schöne Stadt |schönen Stadt |schönen Stadt |schöne Stadt |- |'''plural''' |schönen Städte |schönen Städte |schönen Städten |schönen Städte |} Another function could be used to bold a part of the text (which is a mostly language-independent operation). So we might have bolded the noun ''‘Stadt’'' before, which would result in the following output: {| class="wikitable" |'''''language''''' | colspan="4" |German |- |'''''Part of speech''''' | colspan="4" |noun |- |'''''Inherent feature''''' | colspan="4" |feminine |- |'''''options''''' |'''nominative''' |'''genitive''' |'''dative''' |'''accusative''' |- |'''singular''' |'''Stadt''' |'''Stadt''' |'''Stadt''' |'''Stadt''' |- |'''plural''' |'''Städte''' |'''Städte''' |'''Städten''' |'''Städte''' |} If we merge that with the adjective as before, we get the following result: {| class="wikitable" |'''''language''''' | colspan="4" |German |- |'''''Part of speech''''' | colspan="4" |core noun phrase |- |'''''Inherent feature''''' | colspan="4" |feminine |- |'''''options''''' |'''nominative''' |'''genitive''' |'''dative''' |'''accusative''' |- |'''singular''' |schöne '''Stadt''' |schönen '''Stadt''' |schönen '''Stadt''' |schöne '''Stadt''' |- |'''plural''' |schönen '''Städte''' |schönen '''Städte''' |schönen '''Städten''' |schönen '''Städte''' |} And if we merge that with an indefinite article, we get a full noun phrase: {| class="wikitable" |'''''language''''' | colspan="4" |German |- |'''''Part of speech''''' | colspan="4" |noun phrase |- |'''''Inherent feature''''' | colspan="4" |feminine |- |'''''options''''' |'''nominative''' |'''genitive''' |'''dative''' |'''accusative''' |- |'''singular''' |eine schöne '''Stadt''' |einer schönen '''Stadt''' |einer schönen '''Stadt''' |eine schöne '''Stadt''' |- |'''plural''' |schönen '''Städte''' |schönen '''Städte''' |schönen '''Städten''' |schönen '''Städte''' |} Note that we are always operating on <code>syntactic tables</code>, both in the input and in the output, allowing us to combine the functions flexibly. Compared to my [[Wikifunctions:Type proposals/Syntactic type|previous proposal]], we would not be creating hundreds of types, but just a small number (one basically, maybe some supporting types), answering one of the biggest criticisms. Also, the new type will be available immediately for all languages that want to use it. To summarize, the idea is to have two kind of functions: functions that are usable across all (or at least most) languages (such as <code>link</code> or <code>strong emphasis</code>) and functions that need to be implemented in each language (such as <code>noun with adjective</code>). Both can use the same type, and thus be combined in a way that can reduce the number of functions in the latter group. == Discusssion == === Cory's thoughts === This proposal can get us very far for languages with simple (-ish) morphologies. It will be less effective for morphologically rich language, where a syntactic table might contain thousands of forms, and where it might be more natural to apply these kinds of transformations only to parts of words. For example, while some languages might be okay with <blockquote>schönen <bold>Städte</bold></blockquote> others might prefer something like <blockquote>schönen <bold>Städt</bold>e</blockquote> (note the "e" standing outside of the bold chunk). This can even happen in English: if we wanted to make the phrasal verb "pick up" bold in a sentence, we'd have to deal with non-consecutive bold tokens, e.g. <blockquote>Please <bold>pick</bold> it <bold>up</bold>.</blockquote> More broadly, NLP systems tend to handle this kind of metadata in one of two ways: offset and inset annotation. Inset annotation looks like the above examples: tags that intervene directly in a data structure. Offset annotation might look more like this: <pre> { "text": "Please pick it up.", "spans": [ { "tag": "bold", "begin": 7, "end": 11 }, { "tag": "bold", "begin": 15, "end": 17 } ] } </pre> Decisions like this are not unrelated to how we decide to represent linguistic elements more generally. A general, robust solution would involve treating linguistic units not as literal text strings but as symbolic transformational nodes. In this case, the system wouldn't operate over "Stadt" but over a richer structure containing 1) the syntactic usage of "Stadt," 2) the eventual inflected form of "Stadt," and 3) any additional annotations, such as bold text, that should be applied to the token. It is also possible for these two paradigms to play nicely together. At the end of the day, our system will need to produce specific surface forms in sequence to create sentences, but how we get to those surface forms can vary. Some languages might use syntactic tables while others might need to function in terms of symbolic morphological transformations (if only to reduce the search space of possible syntactic tables!). === Further thoughts by Denny === Cory’s point is valid. In some languages, we will easily get to hundreds of forms. That may not be feasible. Questions are whether we can avoid to expand all these forms, or whether, maybe with a smart usage of quoting functions or some other mechanism, we can find a way to scale the system. == Alternatives == * [[WF:Type proposals/Semantic unit]] * [[WF:Type proposals/Abstract sentence]] == Comments == * <s>{{s}}: this isn't perfect, but it's much much better. [[User:Feeglgeef|Feeglgeef]] ([[User talk:Feeglgeef|talk]]) 16:32, 2 April 2026 (UTC)</s> {{neutral}}: I'd like more opporitunity to review the two competing proposals on this topic, which one we go with is important. [[User:Feeglgeef|Feeglgeef]] ([[User talk:Feeglgeef|talk]]) 13:59, 10 April 2026 (UTC) * {{s}} I feel that this is a step that's required for handling different types of phrases. [[User:Jsamwrites|John Samuel]] 17:59, 2 April 2026 (UTC) * {{s}} I like the idea as I really like spreadsheet functions and tables. As I like Boilerplate templates I hope this proposal can help making it easier to create a function for a specific sentence representing some Wikidata statements.--[[User:Hogü-456|Hogü-456]] ([[User talk:Hogü-456|talk]]) 16:17, 3 April 2026 (UTC) * {{neutral|Comment}} I'm skeptical that we can attain general prose in non-European languages even with this extra context.<!-- --><br>Looking at your example of <code>noun_with_adjective[de] := (noun, adj) => matrix_product(concat_with_space)(adj, noun)</code>,<!-- --> each of the cells/entries in the table is a single [[Z89]], so it seems this Type is limited to grammars where applying an adjective to a noun is just a prefix and/or suffix.<!-- --> I've [[Talk:Z27137#Japanese|previously remarked]] that [[d:Q2116774|counters in Japanese]] can "migrate" to the verb (unlike in English, German, etc. where counters behave like adjectives).<!-- --> To accommodate this, either the language-specific <code>merge</code> Function would have to parse and split off the counter when embedding the noun phrase into a sentence,<!-- --> or this Type would have to somehow encode a split result with additional tagging on each segment.<!-- --><br>IMO a better model for applying formatting like boldface and hyperlinks would be as <code>Z882(Z11, Z883(Z6091, Z881(Z882(Z13518, Z13518))))</code>,<!-- --> that is, to do all linguistic processing on plaintext, but keep track of which span(s) in the string corresponds to each Item from the outer callsite.<!-- --> Then that outer Function can format and linkify the final string by iterating those ranges as ordered by their start index.<!-- --> [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 17:53, 3 April 2026 (UTC) * {{o|Weakly oppose}} While I completely support the need to scale NLG functions outside simple fragment generating functions, I'm skeptical on the bottom-up approach that syntactic tables use. As already addressed, starting composing a sentence from the constituent parts is problematic, since in many instances the behaviour of a part of the sentence depends in non trivial ways to the entire structure of the sentence (in ways that are sometimes not neatly encodable in a simple table). I think that usually the best approach for NLG is top-down, which means that a function should try to generate an entire sentence, delegating to other functions the generation of parts of a sentence (providing the necessary grammatical context). When I have time, I'll try to formulate an alternative proposal. This type could still be a useful intetnal tool, but I think using it as the foundation for modular NLG can be very problematic. [[User:Dv103|Dv103]] ([[User talk:Dv103|talk]]) 15:14, 5 April 2026 (UTC) *:I've now formulated the proposal for [[Wikifunctions:Type proposals/Abstract sentence]] [[User:Dv103|Dv103]] ([[User talk:Dv103|talk]]) 12:22, 7 April 2026 (UTC) * {{o}} per YoshiRulz and Dv103; I have started proposing types based on my own efforts at language generation at ,[[Wikifunctions:Type proposals/Syntactic unit]] and [[Wikifunctions:Type proposals/Semantic unit]]. [[User:Mahir256|Mahir256]] ([[User talk:Mahir256|talk]]) 17:54, 5 April 2026 (UTC) *:Thanks for the links :) [[User:So9q|So9q]] ([[User talk:So9q|talk]]) 21:00, 5 April 2026 (UTC) * I’m not opposed to this proposal, but I do question the wisdom of characterizing a type without formalizing it. We already see the inconvenience with {{Z|Z11}}, where we are unable to identify that a function is limited to a particular language. For what are logically more constrained functions, I think the “too many types” is a valid objection, but if types have no part to play in managing the inevitable complexity, what is the alternative? : I hesitate to leap to solutions, but we should at least explore “generic” types here. In any event, I believe we should make some distinction at the type level, based on the syntactic category (“part of speech” in the proposal). For example, constructions that (logically) require a noun phrase for a particular argument should resist having that argument provided by a function that returns a verb phrase (which would need to be wrapped in a nominalization function). That looks and feels like type-handling, of course, but the real question remains: If syntactic categories are not represented by persistent or generic types, how are the constraints associated with those categories represented and enforced, particularly when constructing compositions, as opposed to evaluating them. :[[User:GrounderUK|GrounderUK]] ([[User talk:GrounderUK|talk]]) 10:16, 17 June 2026 (UTC) ::I think these are great questions. My favorite proposal is still to create specific types for (English / French / Dagbani / ...) (nouns / verb / noun phrase / adjective / ...), in addition to abstract (noun / verb / noun phrase / adjective ...), but there was too much pushback on that one. ::My sense is that we can kick off this one (I did so yesterday) and try it out. We can later still switch to a "many types" solution, most of the functions would be basically the same. --[[User:Denny|Denny]] ([[User talk:Denny|talk]]) 12:47, 17 June 2026 (UTC) :::Yes. As I say, I’m not opposed; I just think that we should expect to end up with “many” types, with whichever structures, whether or not we factor out the language. As I understand the proposal, the complex “generic” type of a K4 object would be the same in every instance, so it is purely structural, with no surfacing of the permitted or expected combinations. Is that right? [[User:GrounderUK|GrounderUK]] ([[User talk:GrounderUK|talk]]) 13:58, 17 June 2026 (UTC) ::::that's correct, K4 is purely structural. One could write functions that check that the table for an English noun is all correct, but as a datatype it is not aware of it. --[[User:Denny|Denny]] ([[User talk:Denny|talk]]) 13:05, 22 June 2026 (UTC) tiiwx5dfcx8xlkaw4le065x0amj834o 285637 285624 2026-06-22T13:26:20Z Denny 81 /* Comments */ Reply 285637 wikitext text/x-wiki : ''Experimentally implemented'': {{Z+|Z36462}} --[[User:DVrandecic (WMF)|DVrandecic (WMF)]] ([[User talk:DVrandecic (WMF)|talk]]) 12:49, 17 June 2026 (UTC) One aim of the NLG system is to have a small number of language-specific functions. It is OK to have many abstract functions, but the specific languages should ideally be less numerous. For example, consider the following six outputs: # Brač is an island. # Brač is a beautiful island. # Brač is a beautiful [[:en:Island|island]]. # '''Brač''' is an island. # '''Brač''' is a beautiful island. # '''Brač''' is a beautiful [[:en:Island|island]]. How many language-specific functions would that need? If I look at the current best practices, I seem to land on six language-specific functions, one for each output. Even though grammatically there seem to be only two major operations: * Connect two noun phrases in a predicative sentence: Brač is an island * Combine an adjective and a noun to form a noun phrase: a beautiful island Besides that, we would have functions to turn a phrase into a link or to give strong emphasis to a phrase, but do these need to be language-specific? I think not. We seem to have all the necessary pieces for the outputs already available: * <code>Indefinite noun phrase with adjective</code>: a beautiful island ([https://www.wikifunctions.org/wiki/Z22664?call=%7B%22Z1K1%22%3A%22Z7%22%2C%22Z7K1%22%3A%22Z22664%22%2C%22Z22664K1%22%3A%7B%22Z1K1%22%3A%22Z6091%22%2C%22Z6091K1%22%3A%22Q23442%22%7D%2C%22Z22664K2%22%3A%7B%22Z1K1%22%3A%22Z6091%22%2C%22Z6091K1%22%3A%22Q7242%22%7D%2C%22Z22664K3%22%3A%22Z1002%22%7D function call]) * <code>Article-less instantiating fragment</code>: Brač is an island. ([https://www.wikifunctions.org/wiki/Z26039?call=%7B%22Z1K1%22%3A%22Z7%22%2C%22Z7K1%22%3A%22Z26039%22%2C%22Z26039K1%22%3A%7B%22Z1K1%22%3A%22Z6091%22%2C%22Z6091K1%22%3A%22Q922%22%7D%2C%22Z26039K2%22%3A%7B%22Z1K1%22%3A%22Z6091%22%2C%22Z6091K1%22%3A%22Q23442%22%7D%2C%22Z26039K3%22%3A%22Z1002%22%7D function call]) * <code>Strong importance</code>: '''Brač''' ([https://www.wikifunctions.org/view/en/Z28914?call=%7B%22Z1K1%22%3A%22Z7%22%2C%22Z7K1%22%3A%22Z28914%22%2C%22Z28914K1%22%3A%22Bra%C4%8D%22%7D function call]) * <code>HTML link to Wikipedia article about Wikidata item</code>: [[:en:Island|island]] ([https://www.wikifunctions.org/view/en/Z29588?call=%7B%22Z1K1%22%3A%22Z7%22%2C%22Z7K1%22%3A%22Z29588%22%2C%22Z29588K1%22%3A%22Z1002%22%2C%22Z29588K2%22%3A%7B%22Z1K1%22%3A%22Z6091%22%2C%22Z6091K1%22%3A%22Q23442%22%7D%7D function call]) But it is currently not possible to plug these together to allow for the creation of the outputs above, beyond the first one. That’s partially because of the involved types: * <code>indefinite noun phrase with adjective</code> takes two <code>Wikidata item references</code> and a <code>language</code> and returns a <code>string</code> * <code>article-less instantiating fragment</code> does the same * <code>Strong importance</code> takes a <code>string</code> and returns an <code>HTML fragment</code> * <code>HTML link to Wikipedia article about Wikidata item</code> takes a <code>language</code> and a <code>Wikidata item reference</code> and returns an <code>HTML fragment</code> It seems that what we would want to do is the following (the language parameter has been omitted for legibility): # <code>instantiating( Brač, island )</code> # <code>instantiating( Brač, noun with adjective( island, beauty ) )</code> # <code>instantiating( Brač, noun with adjective( link( island ), beauty ) )</code> # <code>instantiating( strong( Brač ), island )</code> # <code>instantiating( strong( Brač ), noun with adjective( island, beauty ) )</code> # <code>instantiating( strong( Brač ), noun with adjective( link( island ), beauty ) )</code> If we want to be able to do this, the type of <code>Brač</code> and the return type of <code>strong</code> must be the same, as well as the type of <code>island</code> and the return types of <code>link</code> and <code>noun with adjective</code>. What could that type be? In English, as usual, we may get seduced to a certain simplicity: we could probably just use <code>HTML fragment</code> as the type and probably get away with it! All of the operations above seem to work out. But in French (or Italian or Spanish or many other languages) that wouldn’t work: <code>noun with adjective</code> needs to know the gender of the noun in order to select the right form of the adjective (the adjective and the noun need to agree with each other). HTML fragment does not provide that information. I don’t think that there currently is a good type for that. I suggest introducing a new type, the <code>syntactic table</code>. This is inspired by [[:en:Grammatical Framework (programming language)|Grammatical Framework]], and in core similar to a [[Wikifunctions:Type proposals/Syntactic type|proposal I made last year]], but I learned a lot from the comments and modified the type accordingly, making it considerably simpler. <code>Syntactic table</code> has the following four keys: # <code>Language</code>, i.e. which <code>natural language</code> is this table for # <code>Part of speech</code>, i.e. which part of speech is this (noun, noun phrase, verb, adjective, etc.) (is this a lightweight enumeration or a <code>Wikidata item reference</code>?) # <code>Inherent features</code>, <code>list</code> of <code>Wikidata item references</code> representing grammatical features, e.g. <code>masculine</code>, <code>plural</code>, etc. # <code>Options</code>, a <code>list</code> of <code>pairs</code> of a <code>list</code> of <code>Wikidata item references</code> (representing grammatical features) and a <code>list</code> of <code>HTML fragments</code> Or, do visualize it, here is a visualization of the syntactic table for the German noun ''“Stadt”'', meaning ''city''. {| class="wikitable" |'''''language''''' | colspan="4" |German |- |'''''Part of speech''''' | colspan="4" |noun |- |'''''Inherent feature''''' | colspan="4" |feminine |- |'''''options''''' |'''nominative''' |'''genitive''' |'''dative''' |'''accusative''' |- |'''singular''' |Stadt |Stadt |Stadt |Stadt |- |'''plural''' |Städte |Städte |Städten |Städte |} And here is a partial visualization of the syntactic table for the German adjective ''“schön”'', meaning ''beautiful''. {| class="wikitable" |'''''language''''' | colspan="4" |German |- |'''''Part of speech''''' | colspan="4" |adjective |- |'''''Inherent feature''''' | colspan="4" |— |- | rowspan="2" |'''''options''''' | colspan="3" |'''singular''' | rowspan="2" |'''plural''' |- |'''masculine''' |'''feminine''' |'''neuter''' |- |'''nominative''' |schöner |schöne |schönes |schönen |- |'''genitive''' |schönen |schönen |schönen |schönen |- |'''dative''' |schönen |schönen |schönen |schönen |- |'''accusative''' |schönen |schöne |schönes |schönen |} Now there would be a number of functions working on <code>syntactic tables</code>: for example, the <code>merge</code> function, which takes two tables and returns a table, representing the merger. The inherent features of each of the tables are used to filter the options in each other tables. In addition, the options are combined together to create a new map of forms. So the result of the merging the two tables with a simple spaced concatenation would be: {| class="wikitable" |'''''language''''' | colspan="4" |German |- |'''''Part of speech''''' | colspan="4" |core noun phrase |- |'''''Inherent feature''''' | colspan="4" |feminine |- |'''''options''''' |'''nominative''' |'''genitive''' |'''dative''' |'''accusative''' |- |'''singular''' |schöne Stadt |schönen Stadt |schönen Stadt |schöne Stadt |- |'''plural''' |schönen Städte |schönen Städte |schönen Städten |schönen Städte |} Another function could be used to bold a part of the text (which is a mostly language-independent operation). So we might have bolded the noun ''‘Stadt’'' before, which would result in the following output: {| class="wikitable" |'''''language''''' | colspan="4" |German |- |'''''Part of speech''''' | colspan="4" |noun |- |'''''Inherent feature''''' | colspan="4" |feminine |- |'''''options''''' |'''nominative''' |'''genitive''' |'''dative''' |'''accusative''' |- |'''singular''' |'''Stadt''' |'''Stadt''' |'''Stadt''' |'''Stadt''' |- |'''plural''' |'''Städte''' |'''Städte''' |'''Städten''' |'''Städte''' |} If we merge that with the adjective as before, we get the following result: {| class="wikitable" |'''''language''''' | colspan="4" |German |- |'''''Part of speech''''' | colspan="4" |core noun phrase |- |'''''Inherent feature''''' | colspan="4" |feminine |- |'''''options''''' |'''nominative''' |'''genitive''' |'''dative''' |'''accusative''' |- |'''singular''' |schöne '''Stadt''' |schönen '''Stadt''' |schönen '''Stadt''' |schöne '''Stadt''' |- |'''plural''' |schönen '''Städte''' |schönen '''Städte''' |schönen '''Städten''' |schönen '''Städte''' |} And if we merge that with an indefinite article, we get a full noun phrase: {| class="wikitable" |'''''language''''' | colspan="4" |German |- |'''''Part of speech''''' | colspan="4" |noun phrase |- |'''''Inherent feature''''' | colspan="4" |feminine |- |'''''options''''' |'''nominative''' |'''genitive''' |'''dative''' |'''accusative''' |- |'''singular''' |eine schöne '''Stadt''' |einer schönen '''Stadt''' |einer schönen '''Stadt''' |eine schöne '''Stadt''' |- |'''plural''' |schönen '''Städte''' |schönen '''Städte''' |schönen '''Städten''' |schönen '''Städte''' |} Note that we are always operating on <code>syntactic tables</code>, both in the input and in the output, allowing us to combine the functions flexibly. Compared to my [[Wikifunctions:Type proposals/Syntactic type|previous proposal]], we would not be creating hundreds of types, but just a small number (one basically, maybe some supporting types), answering one of the biggest criticisms. Also, the new type will be available immediately for all languages that want to use it. To summarize, the idea is to have two kind of functions: functions that are usable across all (or at least most) languages (such as <code>link</code> or <code>strong emphasis</code>) and functions that need to be implemented in each language (such as <code>noun with adjective</code>). Both can use the same type, and thus be combined in a way that can reduce the number of functions in the latter group. == Discusssion == === Cory's thoughts === This proposal can get us very far for languages with simple (-ish) morphologies. It will be less effective for morphologically rich language, where a syntactic table might contain thousands of forms, and where it might be more natural to apply these kinds of transformations only to parts of words. For example, while some languages might be okay with <blockquote>schönen <bold>Städte</bold></blockquote> others might prefer something like <blockquote>schönen <bold>Städt</bold>e</blockquote> (note the "e" standing outside of the bold chunk). This can even happen in English: if we wanted to make the phrasal verb "pick up" bold in a sentence, we'd have to deal with non-consecutive bold tokens, e.g. <blockquote>Please <bold>pick</bold> it <bold>up</bold>.</blockquote> More broadly, NLP systems tend to handle this kind of metadata in one of two ways: offset and inset annotation. Inset annotation looks like the above examples: tags that intervene directly in a data structure. Offset annotation might look more like this: <pre> { "text": "Please pick it up.", "spans": [ { "tag": "bold", "begin": 7, "end": 11 }, { "tag": "bold", "begin": 15, "end": 17 } ] } </pre> Decisions like this are not unrelated to how we decide to represent linguistic elements more generally. A general, robust solution would involve treating linguistic units not as literal text strings but as symbolic transformational nodes. In this case, the system wouldn't operate over "Stadt" but over a richer structure containing 1) the syntactic usage of "Stadt," 2) the eventual inflected form of "Stadt," and 3) any additional annotations, such as bold text, that should be applied to the token. It is also possible for these two paradigms to play nicely together. At the end of the day, our system will need to produce specific surface forms in sequence to create sentences, but how we get to those surface forms can vary. Some languages might use syntactic tables while others might need to function in terms of symbolic morphological transformations (if only to reduce the search space of possible syntactic tables!). === Further thoughts by Denny === Cory’s point is valid. In some languages, we will easily get to hundreds of forms. That may not be feasible. Questions are whether we can avoid to expand all these forms, or whether, maybe with a smart usage of quoting functions or some other mechanism, we can find a way to scale the system. == Alternatives == * [[WF:Type proposals/Semantic unit]] * [[WF:Type proposals/Abstract sentence]] == Comments == * <s>{{s}}: this isn't perfect, but it's much much better. [[User:Feeglgeef|Feeglgeef]] ([[User talk:Feeglgeef|talk]]) 16:32, 2 April 2026 (UTC)</s> {{neutral}}: I'd like more opporitunity to review the two competing proposals on this topic, which one we go with is important. [[User:Feeglgeef|Feeglgeef]] ([[User talk:Feeglgeef|talk]]) 13:59, 10 April 2026 (UTC) * {{s}} I feel that this is a step that's required for handling different types of phrases. [[User:Jsamwrites|John Samuel]] 17:59, 2 April 2026 (UTC) * {{s}} I like the idea as I really like spreadsheet functions and tables. As I like Boilerplate templates I hope this proposal can help making it easier to create a function for a specific sentence representing some Wikidata statements.--[[User:Hogü-456|Hogü-456]] ([[User talk:Hogü-456|talk]]) 16:17, 3 April 2026 (UTC) * {{neutral|Comment}} I'm skeptical that we can attain general prose in non-European languages even with this extra context.<!-- --><br>Looking at your example of <code>noun_with_adjective[de] := (noun, adj) => matrix_product(concat_with_space)(adj, noun)</code>,<!-- --> each of the cells/entries in the table is a single [[Z89]], so it seems this Type is limited to grammars where applying an adjective to a noun is just a prefix and/or suffix.<!-- --> I've [[Talk:Z27137#Japanese|previously remarked]] that [[d:Q2116774|counters in Japanese]] can "migrate" to the verb (unlike in English, German, etc. where counters behave like adjectives).<!-- --> To accommodate this, either the language-specific <code>merge</code> Function would have to parse and split off the counter when embedding the noun phrase into a sentence,<!-- --> or this Type would have to somehow encode a split result with additional tagging on each segment.<!-- --><br>IMO a better model for applying formatting like boldface and hyperlinks would be as <code>Z882(Z11, Z883(Z6091, Z881(Z882(Z13518, Z13518))))</code>,<!-- --> that is, to do all linguistic processing on plaintext, but keep track of which span(s) in the string corresponds to each Item from the outer callsite.<!-- --> Then that outer Function can format and linkify the final string by iterating those ranges as ordered by their start index.<!-- --> [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 17:53, 3 April 2026 (UTC) * {{o|Weakly oppose}} While I completely support the need to scale NLG functions outside simple fragment generating functions, I'm skeptical on the bottom-up approach that syntactic tables use. As already addressed, starting composing a sentence from the constituent parts is problematic, since in many instances the behaviour of a part of the sentence depends in non trivial ways to the entire structure of the sentence (in ways that are sometimes not neatly encodable in a simple table). I think that usually the best approach for NLG is top-down, which means that a function should try to generate an entire sentence, delegating to other functions the generation of parts of a sentence (providing the necessary grammatical context). When I have time, I'll try to formulate an alternative proposal. This type could still be a useful intetnal tool, but I think using it as the foundation for modular NLG can be very problematic. [[User:Dv103|Dv103]] ([[User talk:Dv103|talk]]) 15:14, 5 April 2026 (UTC) *:I've now formulated the proposal for [[Wikifunctions:Type proposals/Abstract sentence]] [[User:Dv103|Dv103]] ([[User talk:Dv103|talk]]) 12:22, 7 April 2026 (UTC) * {{o}} per YoshiRulz and Dv103; I have started proposing types based on my own efforts at language generation at ,[[Wikifunctions:Type proposals/Syntactic unit]] and [[Wikifunctions:Type proposals/Semantic unit]]. [[User:Mahir256|Mahir256]] ([[User talk:Mahir256|talk]]) 17:54, 5 April 2026 (UTC) *:Thanks for the links :) [[User:So9q|So9q]] ([[User talk:So9q|talk]]) 21:00, 5 April 2026 (UTC) * I’m not opposed to this proposal, but I do question the wisdom of characterizing a type without formalizing it. We already see the inconvenience with {{Z|Z11}}, where we are unable to identify that a function is limited to a particular language. For what are logically more constrained functions, I think the “too many types” is a valid objection, but if types have no part to play in managing the inevitable complexity, what is the alternative? : I hesitate to leap to solutions, but we should at least explore “generic” types here. In any event, I believe we should make some distinction at the type level, based on the syntactic category (“part of speech” in the proposal). For example, constructions that (logically) require a noun phrase for a particular argument should resist having that argument provided by a function that returns a verb phrase (which would need to be wrapped in a nominalization function). That looks and feels like type-handling, of course, but the real question remains: If syntactic categories are not represented by persistent or generic types, how are the constraints associated with those categories represented and enforced, particularly when constructing compositions, as opposed to evaluating them. :[[User:GrounderUK|GrounderUK]] ([[User talk:GrounderUK|talk]]) 10:16, 17 June 2026 (UTC) ::I think these are great questions. My favorite proposal is still to create specific types for (English / French / Dagbani / ...) (nouns / verb / noun phrase / adjective / ...), in addition to abstract (noun / verb / noun phrase / adjective ...), but there was too much pushback on that one. ::My sense is that we can kick off this one (I did so yesterday) and try it out. We can later still switch to a "many types" solution, most of the functions would be basically the same. --[[User:Denny|Denny]] ([[User talk:Denny|talk]]) 12:47, 17 June 2026 (UTC) :::Yes. As I say, I’m not opposed; I just think that we should expect to end up with “many” types, with whichever structures, whether or not we factor out the language. As I understand the proposal, the complex “generic” type of a K4 object would be the same in every instance, so it is purely structural, with no surfacing of the permitted or expected combinations. Is that right? [[User:GrounderUK|GrounderUK]] ([[User talk:GrounderUK|talk]]) 13:58, 17 June 2026 (UTC) ::::that's correct, K4 is purely structural. One could write functions that check that the table for an English noun is all correct, but as a datatype it is not aware of it. --[[User:Denny|Denny]] ([[User talk:Denny|talk]]) 13:05, 22 June 2026 (UTC) ::::That's actually a good idea, I implemented {{Z|Z36770}} in order to validate English nouns, as an example. --[[User:Denny|Denny]] ([[User talk:Denny|talk]]) 13:26, 22 June 2026 (UTC) aqrqudknilvh8kzsk69rgacvk60rsud Z33068 0 79620 285901 278226 2026-06-23T10:51:52Z Mormegil 150 +cs 285901 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z33068" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z1" }, "Z17K2": "Z33068K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "sentences" }, { "Z1K1": "Z11", "Z11K1": "Z1004", "Z11K2": "phrases" }, { "Z1K1": "Z11", "Z11K1": "Z1430", "Z11K2": "Sätze" }, { "Z1K1": "Z11", "Z11K1": "Z1062", "Z11K2": "věty" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z60", "Z17K2": "Z33068K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "language" }, { "Z1K1": "Z11", "Z11K1": "Z1004", "Z11K2": "langue" }, { "Z1K1": "Z11", "Z11K1": "Z1430", "Z11K2": "Sprache" }, { "Z1K1": "Z11", "Z11K1": "Z1062", "Z11K2": "jazyk" } ] } } ], "Z8K2": "Z89", "Z8K3": [ "Z20", "Z33966", "Z33967", "Z35098" ], "Z8K4": [ "Z14", "Z35097" ], "Z8K5": "Z33068" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "paragraph from sentences" }, { "Z1K1": "Z11", "Z11K1": "Z1004", "Z11K2": "paragraphe à partir de phrases" }, { "Z1K1": "Z11", "Z11K1": "Z1430", "Z11K2": "Absatz aus Sätzen" }, { "Z1K1": "Z11", "Z11K1": "Z1062", "Z11K2": "odstavec z vět" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Takes a list of sentences and creates a paragraph" }, { "Z1K1": "Z11", "Z11K1": "Z1004", "Z11K2": "prend une liste de phrases et créé un paragraphe" }, { "Z1K1": "Z11", "Z11K1": "Z1430", "Z11K2": "wandelt eine Liste von Sätzen in einen Absatz um" }, { "Z1K1": "Z11", "Z11K1": "Z1062", "Z11K2": "Ze zadaného seznamu vět vytvoří odstavec." } ] } } 9223uquejnwuqdht8c6jtj0h6z7ao5r Z33855 0 80865 285875 282694 2026-06-23T06:29:10Z Jsamwrites 938 285875 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z33855" }, "Z2K2": { "Z1K1": "Z14294", "Z14294K1": [ "Z14293", { "Z1K1": "Z14293", "Z14293K1": "Z33844", "Z14293K2": "Z33034" }, { "Z1K1": "Z14293", "Z14293K1": "Z34077", "Z14293K2": "Z34075" }, { "Z1K1": "Z14293", "Z14293K1": "Z36319", "Z14293K2": [ "Z60", "Z1011" ] }, { "Z1K1": "Z14293", "Z14293K1": "Z36857", "Z14293K2": [ "Z60", "Z1004" ] } ], "Z14294K2": "Z33852" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "config for main articles functions" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } j6ykcnh1wbezd52lftj56d6l3e3ruy6 Z34085 0 81222 285879 268499 2026-06-23T06:41:50Z 99of9 1622 spacing of multiple items 285879 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z34085" }, "Z2K2": { "Z1K1": "Z14", "Z14K1": "Z34077", "Z14K2": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z12755", "Z12755K1": { "Z1K1": "Z18", "Z18K1": "Z34077K1" } }, "Z802K2": { "Z1K1": "Z7", "Z7K1": "Z27849", "Z27849K1": { "Z1K1": "Z89", "Z89K1": "\u003Ci\u003EHoofdartikel: \u003C/i\u003E" }, "Z27849K2": { "Z1K1": "Z7", "Z7K1": "Z33848", "Z33848K1": { "Z1K1": "Z7", "Z7K1": "Z811", "Z811K1": { "Z1K1": "Z18", "Z18K1": "Z34077K1" } }, "Z33848K2": { "Z1K1": "Z18", "Z18K1": "Z34077K4" } } }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z27926", "Z27926K1": [ "Z89", { "Z1K1": "Z89", "Z89K1": "\u003Ci\u003EHoofdartikelen: \u003C/i\u003E" }, { "Z1K1": "Z7", "Z7K1": "Z35766", "Z35766K1": { "Z1K1": "Z7", "Z7K1": "Z13464", "Z13464K1": "Z33848", "Z13464K2": { "Z1K1": "Z7", "Z7K1": "Z12967", "Z12967K1": { "Z1K1": "Z18", "Z18K1": "Z34077K1" } }, "Z13464K3": { "Z1K1": "Z18", "Z18K1": "Z34077K4" } }, "Z35766K2": { "Z1K1": "Z89", "Z89K1": " " } }, { "Z1K1": "Z89", "Z89K1": " en " }, { "Z1K1": "Z7", "Z7K1": "Z33848", "Z33848K1": { "Z1K1": "Z7", "Z7K1": "Z12964", "Z12964K1": { "Z1K1": "Z18", "Z18K1": "Z34077K1" } }, "Z33848K2": { "Z1K1": "Z18", "Z18K1": "Z34077K4" } } ] } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "main articles, Dutch, composition" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } 5ordcg35lmyn1ql6g3gp71nunepyvlr Z310 0 84841 285903 283869 2026-06-23T10:56:15Z Mormegil 150 +cs 285903 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z310" }, "Z2K2": { "Z1K1": "Z4", "Z4K1": "Z310", "Z4K2": [ "Z3", { "Z1K1": "Z3", "Z3K1": "Z6", "Z3K2": "Z310K1", "Z3K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Commons media id" }, { "Z1K1": "Z11", "Z11K1": "Z1787", "Z11K2": "id media Commons" }, { "Z1K1": "Z11", "Z11K1": "Z1011", "Z11K2": "কমন্স মিডিয়া আইডি" }, { "Z1K1": "Z11", "Z11K1": "Z1430", "Z11K2": "Commons-Medien-ID" } ] } } ], "Z4K3": "Z101" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Commons image reference" }, { "Z1K1": "Z11", "Z11K1": "Z1787", "Z11K2": "Riferimento a immagine Commons" }, { "Z1K1": "Z11", "Z11K1": "Z1011", "Z11K2": "কমন্স ছবি উল্লেখ" }, { "Z1K1": "Z11", "Z11K1": "Z1430", "Z11K2": "Commons-Bildreferenz" }, { "Z1K1": "Z11", "Z11K1": "Z1062", "Z11K2": "Reference na obrázek na Commons" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31", { "Z1K1": "Z31", "Z31K1": "Z1011", "Z31K2": [ "Z6", "কমন্স ছবি রেফারেন্স" ] }, { "Z1K1": "Z31", "Z31K1": "Z1062", "Z31K2": [ "Z6", "Commons obrázek" ] } ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "A reference to a Wikimedia Commons image, using the file's Commons page ID (M-ID)" }, { "Z1K1": "Z11", "Z11K1": "Z1787", "Z11K2": "Un riferimento ad una immagine Wikimedia Commons, usando l'ID della pagina Commons (M-ID)" }, { "Z1K1": "Z11", "Z11K1": "Z1011", "Z11K2": "উইকিমিডিয়া কমন্স হতে কোনো ছবির কমন্স পেইজ আইডি ব্যবহার করে সেই ছবিটির উল্লেখ। " }, { "Z1K1": "Z11", "Z11K1": "Z1430", "Z11K2": "Referenz auf ein Bild von Wikimedia Commons unter Verwendung der Seiten-ID (MID) der Datei auf Commons" }, { "Z1K1": "Z11", "Z11K1": "Z1062", "Z11K2": "Reference na soubor s obrázkem uložený na Wikimedia Commons prostřednictvím M-ID stránky na Commons" } ] } } jvw0fi5x36t3k2lqm4yttgosc6bqxvg 285904 285903 2026-06-23T10:56:43Z Mormegil 150 +cs 285904 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z310" }, "Z2K2": { "Z1K1": "Z4", "Z4K1": "Z310", "Z4K2": [ "Z3", { "Z1K1": "Z3", "Z3K1": "Z6", "Z3K2": "Z310K1", "Z3K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Commons media id" }, { "Z1K1": "Z11", "Z11K1": "Z1787", "Z11K2": "id media Commons" }, { "Z1K1": "Z11", "Z11K1": "Z1011", "Z11K2": "কমন্স মিডিয়া আইডি" }, { "Z1K1": "Z11", "Z11K1": "Z1430", "Z11K2": "Commons-Medien-ID" }, { "Z1K1": "Z11", "Z11K1": "Z1062", "Z11K2": "ID stránky na Commons" } ] } } ], "Z4K3": "Z101" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Commons image reference" }, { "Z1K1": "Z11", "Z11K1": "Z1787", "Z11K2": "Riferimento a immagine Commons" }, { "Z1K1": "Z11", "Z11K1": "Z1011", "Z11K2": "কমন্স ছবি উল্লেখ" }, { "Z1K1": "Z11", "Z11K1": "Z1430", "Z11K2": "Commons-Bildreferenz" }, { "Z1K1": "Z11", "Z11K1": "Z1062", "Z11K2": "Reference na obrázek na Commons" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31", { "Z1K1": "Z31", "Z31K1": "Z1011", "Z31K2": [ "Z6", "কমন্স ছবি রেফারেন্স" ] }, { "Z1K1": "Z31", "Z31K1": "Z1062", "Z31K2": [ "Z6", "Commons obrázek" ] } ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "A reference to a Wikimedia Commons image, using the file's Commons page ID (M-ID)" }, { "Z1K1": "Z11", "Z11K1": "Z1787", "Z11K2": "Un riferimento ad una immagine Wikimedia Commons, usando l'ID della pagina Commons (M-ID)" }, { "Z1K1": "Z11", "Z11K1": "Z1011", "Z11K2": "উইকিমিডিয়া কমন্স হতে কোনো ছবির কমন্স পেইজ আইডি ব্যবহার করে সেই ছবিটির উল্লেখ। " }, { "Z1K1": "Z11", "Z11K1": "Z1430", "Z11K2": "Referenz auf ein Bild von Wikimedia Commons unter Verwendung der Seiten-ID (MID) der Datei auf Commons" }, { "Z1K1": "Z11", "Z11K1": "Z1062", "Z11K2": "Reference na soubor s obrázkem uložený na Wikimedia Commons prostřednictvím M-ID stránky na Commons" } ] } } fgeqclntvakmbl5jvz0h2ftobbvb87m Z36038 0 84951 285902 282050 2026-06-23T10:55:25Z Mormegil 150 +cs 285902 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36038" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z310", "Z17K2": "Z36038K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "image" }, { "Z1K1": "Z11", "Z11K1": "Z1787", "Z11K2": "immagine" }, { "Z1K1": "Z11", "Z11K1": "Z1062", "Z11K2": "obrázek" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z6", "Z17K2": "Z36038K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "alternative text" }, { "Z1K1": "Z11", "Z11K1": "Z1787", "Z11K2": "testo alternativo" }, { "Z1K1": "Z11", "Z11K1": "Z1062", "Z11K2": "alternativní text" } ] } } ], "Z8K2": "Z89", "Z8K3": [ "Z20", "Z36042" ], "Z8K4": [ "Z14", "Z36039", "Z36040", "Z36248" ], "Z8K5": "Z36038" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "image thumbnail with alt text" }, { "Z1K1": "Z11", "Z11K1": "Z1787", "Z11K2": "crea miniatura di immagine Commons" }, { "Z1K1": "Z11", "Z11K1": "Z1062", "Z11K2": "náhled obrázku s alternativním textem" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31", { "Z1K1": "Z31", "Z31K1": "Z1002", "Z31K2": [ "Z6", "insert image", "image HTML", "thumbnail with alt text", "create Commons thumbnail image" ] }, { "Z1K1": "Z31", "Z31K1": "Z1062", "Z31K2": [ "Z6", "obrázek", "vložit obrázek", "Commons obrázek" ] } ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Given a Commons image file reference (Z310), returns an \u003Cext-wikilambda-image\u003E element string" }, { "Z1K1": "Z11", "Z11K1": "Z1787", "Z11K2": "Dato un riferimento a immagine Commons, restituisce un frammento HTML con \u003Cext-wikilambda-image\u003E" }, { "Z1K1": "Z11", "Z11K1": "Z1062", "Z11K2": "Vytvoří řetězec elementu \u003Cext-wikilambda-image\u003E pro zadanou Referenci na obrázkový soubor na Commons (Z310)" } ] } } 624sshhvez4ac9deytumtbr8orurms8 Z36153 0 85234 285832 281161 2026-06-23T03:50:46Z Jsamwrites 938 285832 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36153" }, "Z2K2": { "Z1K1": "Z14", "Z14K1": "Z36152", "Z14K2": { "Z1K1": "Z7", "Z7K1": "Z861", "Z861K1": { "Z1K1": "Z7", "Z7K1": "Z22511", "Z22511K1": { "Z1K1": "Z7", "Z7K1": "Z12899", "Z12899K1": [ "Z6", { "Z1K1": "Z7", "Z7K1": "Z23468", "Z23468K1": { "Z1K1": "Z7", "Z7K1": "Z6821", "Z6821K1": { "Z1K1": "Z18", "Z18K1": "Z36152K1" } }, "Z23468K2": "Z1002" }, "was ", { "Z1K1": "Z7", "Z7K1": "Z36144", "Z36144K1": { "Z1K1": "Z18", "Z18K1": "Z36152K2" }, "Z36144K2": [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q1392475" } ], "Z36144K3": "Z1002" }, "between", { "Z1K1": "Z7", "Z7K1": "Z23468", "Z23468K1": { "Z1K1": "Z7", "Z7K1": "Z6821", "Z6821K1": { "Z1K1": "Z18", "Z18K1": "Z36152K3" } }, "Z23468K2": "Z1002" }, "and", { "Z1K1": "Z7", "Z7K1": "Z23468", "Z23468K1": { "Z1K1": "Z7", "Z7K1": "Z6821", "Z6821K1": { "Z1K1": "Z18", "Z18K1": "Z36152K4" } }, "Z23468K2": "Z1002" } ], "Z12899K2": " " } }, "Z861K2": "Z1002" } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Creative work - entity, action, period, en, comp" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } r2z3soa00xfp560hzvur2xst43neb7n Z36154 0 85235 285833 281158 2026-06-23T03:56:49Z Jsamwrites 938 285833 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36154" }, "Z2K2": { "Z1K1": "Z20", "Z20K1": "Z36152", "Z20K2": { "Z1K1": "Z7", "Z7K1": "Z14396", "Z14396K1": { "Z1K1": "Z7", "Z7K1": "Z36152", "Z36152K1": { "Z1K1": "Z6091", "Z6091K1": "Q243" }, "Z36152K2": { "Z1K1": "Z6091", "Z6091K1": "Q25555886" }, "Z36152K3": { "Z1K1": "Z6091", "Z6091K1": "Q7826" }, "Z36152K4": { "Z1K1": "Z6091", "Z6091K1": "Q7831" } } }, "Z20K3": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K2": "Eiffel Tower was built between 1887 and 1889." } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Eiffel Tower, 1887-1889" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } 0855g05qi9dcpd484fjxtp28zs526ug Wikifunctions talk:Type proposals/Semantic unit 5 85515 285773 283777 2026-06-22T21:12:30Z Mahir256 38 Undid revision [[Special:Diff/283776|283776]] by [[Special:Contributions/Dv103|Dv103]] ([[User talk:Dv103|talk]]) lists are ordered, sets are not 285773 wikitext text/x-wiki == Other possible types and objects == The following are lists of other entities defined in Ninai for the handling of Constructors. They were first assembled with the outputs of various <code>git grep</code> commands on the [https://gitlab.com/mahir256/ninai/ Ninai repository], and notes are provided below each about the nature of that declaration. Equivalents of many of these will be necessary, but levels of requirement will be marked as the notes below are filled in. === Classes === * ninai/base/argumentfilters.py: class ArgumentFilterOptions(NamedTuple): ** ... * ninai/base/constructor.py: class Constructor(NamedTuple): ** The "semantic unit" type is intended to be equivalent to this class. * ninai/base/constructormainrenderer.py: class ConstructorMainRenderer(NamedTuple): ** ... * ninai/base/constructorrenderer.py: class ConstructorRenderer(NamedTuple): ** ... * ninai/base/constructorzipper.py: class ArgumentLevel(NamedTuple): ** ... * ninai/base/constructorzipper.py: class ConstructorZipper(NamedTuple): ** ... * ninai/base/context.py: class ContextEntry(NamedTuple): ** ... * ninai/base/context.py: class Context(NamedTuple): ** ... * ninai/base/coreargumentprocessor.py: class CoreArgumentProcessor(NamedTuple): ** ... * ninai/base/coreargumentsrenderer.py: class CoreArgumentsRenderer(NamedTuple): ** ... * ninai/base/framing.py: class MethodKey(NamedTuple): ** ... * ninai/base/framing.py: class FramingKey(NamedTuple): ** ... * ninai/base/framing.py: class FramingDict(NamedTuple): ** ... * ninai/base/framing.py: class Framing(NamedTuple): ** ... * ninai/base/interfaces.py: class CandidatePathNode(TypedDict): # due to XMLRPC serialization, must remain a TypedDict ** ... * ninai/base/interfaces.py: class CatenaYieldingIterator(Protocol): ** ... * ninai/base/interfaces.py: class SenseFindingFallback(CatenaYieldingIterator, Protocol): ** ... * ninai/base/interfaces.py: class ArgumentFilterBasis(Protocol): ** ... * ninai/base/interfaces.py: class ArgumentFilter(Protocol): ** ... * ninai/base/interfaces.py: class ArgPreHook(Protocol): ** ... * ninai/base/interfaces.py: class ArgPostHook(Protocol): ** ... * ninai/base/interfaces.py: class PreHook(Protocol): ** ... * ninai/base/interfaces.py: class PostHook(Protocol): ** ... * ninai/base/interfaces.py: class Renderer(Protocol): ** ... * ninai/base/interfaces.py: class SyntacticRoleFunction(Protocol): ** ... * ninai/base/interfaces.py: class SenseRefinement(Protocol): ** ... * ninai/base/interfaces.py: class Constructorify(Protocol): ** ... * ninai/base/interfaces.py: class Transcribe(Protocol): ** ... * ninai/base/interfaces.py: class BinominalCompoundCalque(Protocol): ** ... * ninai/base/interfaces.py: class DerivationalCalqueFunction(Protocol): ** ... * ninai/base/interfaces.py: class InitialCatenaProcessor(Protocol): ** ... * ninai/base/interfaces.py: class ThematicInflectionAddition(Protocol): ** ... * ninai/base/interfaces.py: class InflectionFunction(Protocol): ** ... * ninai/base/interfaces.py: class ScopeOutputProcessor(Protocol): ** ... * ninai/base/interfaces.py: class ThematicRelationlessProcessor(Protocol): ** ... * ninai/base/interfaces.py: class NinaiError(Exception): ** ... * ninai/base/interfaces.py: class RenderingPhase(IntEnum): ** ... * ninai/base/interfaces.py: class CoreArgumentProcessingPhase(IntEnum): ** ... * ninai/base/interfaces.py: class PreHookOperator(NamedTuple): ** ... * ninai/base/interfaces.py: class MainRendererOperator(NamedTuple): ** ... * ninai/base/interfaces.py: class PostHookOperator(NamedTuple): ** ... * ninai/base/pausedrenderersupply.py: class PausedRendererSupply(NamedTuple): ** ... * ninai/base/rendererarguments.py: class RendererArguments(NamedTuple): ** ... * ninai/base/scopeargumentsrenderer.py: class ScopeArgumentsRenderer(NamedTuple): ** ... * ninai/constructors/contexts/refcontext.py: class RefContextRenderer(NamedTuple): ** ... * ninai/graph/__init__.py: class CatenaFromItemIdIterator: ** ... * ninai/graph/__init__.py: class FallbackRunner: ** ... * ninai/graph/calque.py: class VerboNominalSyntagmaCalque: ** ... * ninai/graph/calque.py: class DerivationCalque: ** ... * ninai/graph/calque.py: class EndocentricCompoundCalque: ** ... * ninai/graph/calque.py: class CalqueIterator: ** ... * ninai/graph/client.py: class CandidateProcessor: ** ... * ninai/graph/client.py: class SenseFindingIterator: ** ... * ninai/graph/cognate.py: class CognateIterator: ** ... * ninai/graph/fallbacks.py: class CatenaZipperListIterator: ** ... * ninai/graph/server.py: class GraphServer: ** ... * ninai/graph/server.py: class ServerThread(threading.Thread): ** ... * ninai/graph/server.py: class GraphServerRepl(cmd.Cmd): ** ... * ninai/graph/transcribe.py: class TranscribeIterator: ** ... * ninai/renderers/mul.py: class FinalPunctuationFunction(Protocol): ** ... === Type aliases === (May be initially incomplete, since not all type aliases may have been marked with the "TypeAlias" type annotation. * ninai/base/constructorrenderer.py:RenderingPhaseEncapsulator: "TypeAlias" = Union[ConstructorMainRenderer, CoreArgumentsRenderer, ScopeArgumentsRenderer] ** ... * ninai/base/interfaces.py:ChildIdentifiersMapping: "TypeAlias" = Dict[str, Tuple[Tuple[str, ...], str]] ** ... * ninai/base/interfaces.py:CoreArguments: "TypeAlias" = Dict[str, "Constructor"] ** ... * ninai/base/interfaces.py:ScopeArguments: "TypeAlias" = List["Constructor"] ** ... * ninai/base/interfaces.py:ThematicRelationSpec: "TypeAlias" = Dict[str, Statement] ** ... * ninai/base/interfaces.py:NonConstructorTypeArguments: "TypeAlias" = Union[ ** ... * ninai/base/interfaces.py:ConstructorArgument: "TypeAlias" = Union["Constructor", NonConstructorTypeArguments] ** ... * ninai/base/interfaces.py:ConstructorArguments: "TypeAlias" = Sequence[ConstructorArgument] ** ... * ninai/graph/server.py:EntityGraph: TypeAlias = "nx.MultiDiGraph[str]" ** ... === Other objects === Some rough equivalents for the types named in the annotations below: * Dict = [[Z883]] * Set = (no equivalent, maybe [[Z883]] with [[Z1]] keys and [[Z41]] as the only value?) * List = [[Z881]] * Language = [[Z60]] (May be initially incomplete, since this is basically a list of entities not falling into any of the above types.) * ninai/base/constructorinterfaces.py:__constructor_argument_filters__: Dict[str, "ArgumentFilter"] = {} ** ... * ninai/base/constructorinterfaces.py:__constructor_core_arguments__: Dict[str, List[str]] = {} ** ... * ninai/base/constructorinterfaces.py:__constructor_docstrings__: Dict[str, str] = {} ** ... * ninai/base/constructorinterfaces.py:__constructor_type_hierarchy__: Dict[str, List[str]] = {} ** ... * ninai/base/constructorinterfaces.py:__config_insulators__: Set[str] = set() ** ... * ninai/base/constructorinterfaces.py:__config_setters__: Set[str] = set() ** ... * ninai/base/constructorinterfaces.py:__unfiltered_framing_constructors__: Set[str] = set() ** ... * ninai/graph/__init__.py:__fallback_chains__: DefaultDict[Language, DefaultDict[str, List[str]]] = defaultdict(lambda: defaultdict(list)) ** ... * ninai/graph/__init__.py:__fallback_chain_types__: Dict[str, Type[i.SenseFindingFallback]] = {...} ** ... * ninai/graph/client.py:__language_range__: Dict[Language, Tuple[tfsli.Qid, ...]] = {} ** ... * ninai/renderers/__mappings__.py:__arg_pre_hooks__: DefaultDict[str, DefaultDict[str, Dict["Language", "ArgPreHook"]]] = defaultdict(lambda: defaultdict(dict)) ** ... * ninai/renderers/__mappings__.py:__arg_post_hooks__: DefaultDict[str, DefaultDict[str, Dict["Language", "ArgPostHook"]]] = defaultdict(lambda: defaultdict(dict)) ** ... * ninai/renderers/__mappings__.py:__pre_hooks__: DefaultDict[str, Dict["Language", "PreHook"]] = defaultdict(dict) ** ... * ninai/renderers/__mappings__.py:__post_hooks__: DefaultDict[str, Dict["Language", "PostHook"]] = defaultdict(dict) ** ... * ninai/renderers/__mappings__.py:__renderers__: DefaultDict[str, Dict["Language", "Renderer"]] = defaultdict(dict) ** ... * ninai/renderers/__mappings__.py:__syntactic_role_functions__: DefaultDict[str, Dict["Language", "SyntacticRoleFunction"]] = defaultdict(dict) ** ... * ninai/renderers/__mappings__.py:__sense_refines__: Dict["Language", "SenseRefinement"] = {} ** ... * ninai/renderers/__mappings__.py:__initial_catena_processors__: Dict["Language", "InitialCatenaProcessor"] = {} ** ... * ninai/renderers/__mappings__.py:__thematic_inflection_additions__: Dict["Language", "ThematicInflectionAddition"] = {} ** ... * ninai/renderers/__mappings__.py:__inflection_functions__: Dict["Language", "InflectionFunction"] = {} ** ... * ninai/renderers/__mappings__.py:__scope_output_processors__: Dict["Language", "ScopeOutputProcessor"] = {} ** ... * ninai/renderers/__mappings__.py:__thematic_relationless_processors__: Dict["Language", "ThematicRelationlessProcessor"] = {} ** ... * ninai/renderers/__mappings__.py:__constructorifies__: Dict["Language", "Constructorify"] = {} ** ... * ninai/renderers/__mappings__.py:__transcribes__: Dict["Language", "Transcribe"] = {} ** ... * ninai/renderers/__mappings__.py:__binominal_calques__: Dict["Language", "BinominalCompoundCalque"] = {} ** ... * ninai/renderers/__mappings__.py:__derivation_calques__: Dict["Language", "DerivationalCalqueFunction"] = {} ** ... * ninai/renderers/mul.py:__full_stop_overrides__: Dict[Language, FinalPunctuationFunction] = {} ** ... == Missing Wikifunctions features for this type == @[[User:Mahir256|Mahir256]] What are the currently missing features of Wikifunctions that are necessary to actually implement this type? Which of these are fundamental, and which are just useful to port the code directly from Ninai? It could be useful to have them all listed in one place. [[User:Dv103|Dv103]] ([[User talk:Dv103|talk]]) 17:36, 16 June 2026 (UTC) g57ge381obnmavx0h5uf6cxw609wsyf 285793 285773 2026-06-22T21:45:02Z Mahir256 38 start describing things that need to happen 285793 wikitext text/x-wiki == Other possible types and objects == The following are lists of other entities defined in Ninai for the handling of Constructors. They were first assembled with the outputs of various <code>git grep</code> commands on the [https://gitlab.com/mahir256/ninai/ Ninai repository], and notes are provided below each about the nature of that declaration. Equivalents of many of these will be necessary, but levels of requirement will be marked as the notes below are filled in. === Classes === * ninai/base/constructor.py: class Constructor(NamedTuple): ** The "semantic unit" type is intended to be equivalent to this class. * ninai/base/constructorzipper.py: class ConstructorZipper(NamedTuple): * ninai/base/constructorzipper.py: class ArgumentLevel(NamedTuple): ** [https://gitlab.com/mahir256/ninai/-/blob/main/ninai/base/constructorzipper.py#L26 "Due to the Wikifunctions requirement that all functions be pure functions, [these constructs have] been introduced in order to assist the manipulation of [semantic units]."] As a result, it should be possible ** ❌ to either return modified inputs cheaply, or [[:w:en:Zipper (data structure)|to create modified versions of persistent data structures cheaply]] and return those. * ninai/base/argumentfilters.py: class ArgumentFilterOptions(NamedTuple): ** ... * ninai/base/constructormainrenderer.py: class ConstructorMainRenderer(NamedTuple): * ninai/base/constructorrenderer.py: class ConstructorRenderer(NamedTuple): * ninai/base/coreargumentprocessor.py: class CoreArgumentProcessor(NamedTuple): * ninai/base/coreargumentsrenderer.py: class CoreArgumentsRenderer(NamedTuple): * ninai/base/scopeargumentsrenderer.py: class ScopeArgumentsRenderer(NamedTuple): ** These classes encapsulate each of the steps that are actually run by the base Ninai system during semantic unit rendering, as described in [https://journals.sagepub.com/doi/full/10.3233/SW-243564 §5.1 of my paper]). As a result, it should be possible ** ❌ * ninai/base/context.py: class ContextEntry(NamedTuple): * ninai/base/context.py: class Context(NamedTuple): ** ... * ninai/base/framing.py: class MethodKey(NamedTuple): ** ... * ninai/base/framing.py: class FramingKey(NamedTuple): ** ... * ninai/base/framing.py: class FramingDict(NamedTuple): ** ... * ninai/base/framing.py: class Framing(NamedTuple): ** ... * ninai/base/interfaces.py: class CandidatePathNode(TypedDict): # due to XMLRPC serialization, must remain a TypedDict ** ... * ninai/base/interfaces.py: class ArgumentFilterBasis(Protocol): ** ... * ninai/base/interfaces.py: class ArgumentFilter(Protocol): ** ... * ninai/base/interfaces.py: class ArgPreHook(Protocol): * ninai/base/interfaces.py: class ArgPostHook(Protocol): * ninai/base/interfaces.py: class PreHook(Protocol): * ninai/base/interfaces.py: class PostHook(Protocol): * ninai/base/interfaces.py: class Renderer(Protocol): ** Functions satisfying these protocols perform each of the steps of the semantic unit rendering process (as described in [https://journals.sagepub.com/doi/full/10.3233/SW-243564 §5.1 of my paper]). As a result, it should be possible ** ❌ to verify that a function in a particular (language, semantic unit)-to-function mapping has the appropriate function signature. * ninai/base/interfaces.py: class SyntacticRoleFunction(Protocol): * ninai/base/interfaces.py: class InitialCatenaProcessor(Protocol): * ninai/base/interfaces.py: class ThematicInflectionAddition(Protocol): * ninai/base/interfaces.py: class InflectionFunction(Protocol): * ninai/base/interfaces.py: class ScopeOutputProcessor(Protocol): * ninai/base/interfaces.py: class ThematicRelationlessProcessor(Protocol): ** The notes in the previous sub-bullet point apply here too; functions matching these protocols perform steps of the process of rendering arbitrary predicates. * ninai/base/interfaces.py: class SenseRefinement(Protocol): ** ... * ninai/base/interfaces.py: class Constructorify(Protocol): ** ... * ninai/base/interfaces.py: class Transcribe(Protocol): ** ... * ninai/base/interfaces.py: class BinominalCompoundCalque(Protocol): ** ... * ninai/base/interfaces.py: class DerivationalCalqueFunction(Protocol): ** ... * ninai/base/interfaces.py: class NinaiError(Exception): ** ... * ninai/base/interfaces.py: class RenderingPhase(IntEnum): ** ... * ninai/base/interfaces.py: class CoreArgumentProcessingPhase(IntEnum): ** ... * ninai/base/interfaces.py: class PreHookOperator(NamedTuple): ** ... * ninai/base/interfaces.py: class MainRendererOperator(NamedTuple): ** ... * ninai/base/interfaces.py: class PostHookOperator(NamedTuple): ** ... * ninai/base/rendererarguments.py: class RendererArguments(NamedTuple): ** ... * ninai/constructors/contexts/refcontext.py: class RefContextRenderer(NamedTuple): ** ... * ninai/graph/__init__.py: class FallbackRunner: ** ... * ninai/graph/client.py: class CandidateProcessor: ** ... * ninai/graph/server.py: class GraphServer: * ninai/graph/server.py: class ServerThread(threading.Thread): * ninai/graph/server.py: class GraphServerRepl(cmd.Cmd): ** These classes serve as scaffolding for threads that handle remote procedure calls for graph traversals from a starting item/lexeme/sense and return the results of those traversals (https://elemwala-backend.toolforge.org merely runs such threads). While the specific Python implementation need not exist in the same fashion as written, it should still be possible ** ❌ to traverse the full graph of connections between Wikidata entities having certain property links (for instance, to go from one sense to another three "synonym" statements away, or to go from one lexeme to another three "etymology" statements away); the current functions which simply run "haswbstatement:P5137" full-text searches are not sufficient. * ninai/base/pausedrenderersupply.py: class PausedRendererSupply(NamedTuple): ** This class was added to assist in something Maria Keet had asked for once: if a particular grammatical feature is not known at a point in the rendering process, and there isn't a clear way to proceed without knowing it, this should cause the rendering process to be ''paused'' and the user should be allowed to ''supply'' the missing information to the ''renderer'' and resume that process. As a result, it should be possible ** ❌ to return some state representation, in the event of an error within rendering, that can be resumed with appropriate information provided. * ninai/base/interfaces.py: class CatenaYieldingIterator(Protocol): ** Iterator classes matching this protocol, which otherwise could be reduced to individual functions, exist for a couple of reasons: **# Because Wikifunctions is based on principles exemplified by Haskell (which is not an implementation language, which has proper tail call optimization, but which does not have 'for' loops), and because Ninai/Udiron is written in Python (which is an implementation language, which does not optimize tail calls<ref>https://neopythonic.blogspot.com/2009/04/tail-recursion-elimination.html</ref>, but which has 'for' loops), such iterators return, in addition to the object they generate, a new iterator starting from the point at which that object was generated. **# Generators (and thus iterators) are not automatically serializable (indeed, even more comprehensive Python libraries than pickle cannot do so<ref>https://pypi.org/project/dill/</ref>), so these objects manually implement Python's iterator protocol. ** As a result, it should be possible ** ❌ to serialize and deserialize the current state of a given sense finding process. * ninai/graph/client.py: class SenseFindingIterator: ** This represents the main starting point of the sense finding process, and is serializable for the reasons above. * ninai/base/interfaces.py: class SenseFindingFallback(CatenaYieldingIterator, Protocol): * ninai/graph/calque.py: class CalqueIterator: # finding equivalents for parts of a complex lexeme in a source language, and reassembling the equivalents in a target language * ninai/graph/calque.py: class VerboNominalSyntagmaCalque: # in the situation where a verb consists of e.g. (a noun) + "to do" * ninai/graph/calque.py: class EndocentricCompoundCalque: # in the situation where a noun consists of two other nouns, or an adjective attached to a noun * ninai/graph/calque.py: class DerivationCalque: # in the situation where a lexeme consists of another lexeme with a derivational affix * ninai/graph/fallbacks.py: class CatenaZipperListIterator: # returning choices from only a specific list of lexemes * ninai/graph/cognate.py: class CognateIterator: # returning lexemes in a target language that, via "derived from lexeme" statements, are etymologically related to a lexeme in a source language * ninai/graph/transcribe.py: class TranscribeIterator: # returning pseudo-lexemes that consist of another lexeme in a source language with its (phonetic/orthographic) representation converted to a target language * ninai/graph/__init__.py: class CatenaFromItemIdIterator: # ** In addition to the notes about "CatenaYieldingIterator" above, these iterators perform fallback steps * ninai/renderers/mul.py: class FinalPunctuationFunction(Protocol): ** This === Type aliases === (May be initially incomplete, since not all type aliases may have been marked with the "TypeAlias" type annotation. * ninai/base/constructorrenderer.py:RenderingPhaseEncapsulator: "TypeAlias" = Union[ConstructorMainRenderer, CoreArgumentsRenderer, ScopeArgumentsRenderer] ** ... * ninai/base/interfaces.py:ChildIdentifiersMapping: "TypeAlias" = Dict[str, Tuple[Tuple[str, ...], str]] ** ... * ninai/base/interfaces.py:CoreArguments: "TypeAlias" = Dict[str, "Constructor"] ** ... * ninai/base/interfaces.py:ScopeArguments: "TypeAlias" = List["Constructor"] ** ... * ninai/base/interfaces.py:ThematicRelationSpec: "TypeAlias" = Dict[str, Statement] ** ... * ninai/base/interfaces.py:NonConstructorTypeArguments: "TypeAlias" = Union[ ** ... * ninai/base/interfaces.py:ConstructorArgument: "TypeAlias" = Union["Constructor", NonConstructorTypeArguments] ** ... * ninai/base/interfaces.py:ConstructorArguments: "TypeAlias" = Sequence[ConstructorArgument] ** ... * ninai/graph/server.py:EntityGraph: TypeAlias = "nx.MultiDiGraph[str]" ** ... === Other objects === Some rough equivalents for the types named in the annotations below: * Dict = [[Z883]] * Set = (no equivalent, maybe [[Z883]] with [[Z1]] keys and [[Z41]] as the only value?) * List = [[Z881]] * Language = [[Z60]] (May be initially incomplete, since this is basically a list of entities not falling into any of the above types.) * ninai/base/constructorinterfaces.py:__constructor_argument_filters__: Dict[str, "ArgumentFilter"] = {} ** ... * ninai/base/constructorinterfaces.py:__constructor_core_arguments__: Dict[str, List[str]] = {} ** ... * ninai/base/constructorinterfaces.py:__constructor_docstrings__: Dict[str, str] = {} ** ... * ninai/base/constructorinterfaces.py:__constructor_type_hierarchy__: Dict[str, List[str]] = {} ** ... * ninai/base/constructorinterfaces.py:__config_insulators__: Set[str] = set() ** ... * ninai/base/constructorinterfaces.py:__config_setters__: Set[str] = set() ** ... * ninai/base/constructorinterfaces.py:__unfiltered_framing_constructors__: Set[str] = set() ** ... * ninai/graph/__init__.py:__fallback_chains__: DefaultDict[Language, DefaultDict[str, List[str]]] = defaultdict(lambda: defaultdict(list)) ** ... * ninai/graph/__init__.py:__fallback_chain_types__: Dict[str, Type[i.SenseFindingFallback]] = {...} ** ... * ninai/graph/client.py:__language_range__: Dict[Language, Tuple[tfsli.Qid, ...]] = {} ** ... * ninai/renderers/__mappings__.py:__arg_pre_hooks__: DefaultDict[str, DefaultDict[str, Dict["Language", "ArgPreHook"]]] = defaultdict(lambda: defaultdict(dict)) ** ... * ninai/renderers/__mappings__.py:__arg_post_hooks__: DefaultDict[str, DefaultDict[str, Dict["Language", "ArgPostHook"]]] = defaultdict(lambda: defaultdict(dict)) ** ... * ninai/renderers/__mappings__.py:__pre_hooks__: DefaultDict[str, Dict["Language", "PreHook"]] = defaultdict(dict) ** ... * ninai/renderers/__mappings__.py:__post_hooks__: DefaultDict[str, Dict["Language", "PostHook"]] = defaultdict(dict) ** ... * ninai/renderers/__mappings__.py:__renderers__: DefaultDict[str, Dict["Language", "Renderer"]] = defaultdict(dict) ** ... * ninai/renderers/__mappings__.py:__syntactic_role_functions__: DefaultDict[str, Dict["Language", "SyntacticRoleFunction"]] = defaultdict(dict) ** ... * ninai/renderers/__mappings__.py:__sense_refines__: Dict["Language", "SenseRefinement"] = {} ** ... * ninai/renderers/__mappings__.py:__initial_catena_processors__: Dict["Language", "InitialCatenaProcessor"] = {} ** ... * ninai/renderers/__mappings__.py:__thematic_inflection_additions__: Dict["Language", "ThematicInflectionAddition"] = {} ** ... * ninai/renderers/__mappings__.py:__inflection_functions__: Dict["Language", "InflectionFunction"] = {} ** ... * ninai/renderers/__mappings__.py:__scope_output_processors__: Dict["Language", "ScopeOutputProcessor"] = {} ** ... * ninai/renderers/__mappings__.py:__thematic_relationless_processors__: Dict["Language", "ThematicRelationlessProcessor"] = {} ** ... * ninai/renderers/__mappings__.py:__constructorifies__: Dict["Language", "Constructorify"] = {} ** ... * ninai/renderers/__mappings__.py:__transcribes__: Dict["Language", "Transcribe"] = {} ** ... * ninai/renderers/__mappings__.py:__binominal_calques__: Dict["Language", "BinominalCompoundCalque"] = {} ** ... * ninai/renderers/__mappings__.py:__derivation_calques__: Dict["Language", "DerivationalCalqueFunction"] = {} ** ... * ninai/renderers/mul.py:__full_stop_overrides__: Dict[Language, FinalPunctuationFunction] = {} ** ... == Missing Wikifunctions features for this type == @[[User:Mahir256|Mahir256]] What are the currently missing features of Wikifunctions that are necessary to actually implement this type? Which of these are fundamental, and which are just useful to port the code directly from Ninai? It could be useful to have them all listed in one place. [[User:Dv103|Dv103]] ([[User talk:Dv103|talk]]) 17:36, 16 June 2026 (UTC) ir2hec9fw77nazsd9l6bt2dcfu3rlns 285794 285793 2026-06-22T22:58:54Z Mahir256 38 285794 wikitext text/x-wiki == Other possible types and objects == The following are lists of other entities defined in Ninai for the handling of Constructors. They were first assembled with the outputs of various <code>git grep</code> commands on the [https://gitlab.com/mahir256/ninai/ Ninai repository], and notes are provided below each about the nature of that declaration. Equivalents of many of these will be necessary, but levels of requirement will be marked as the notes below are filled in. === Classes === * ninai/base/constructor.py: class Constructor(NamedTuple): ** The "semantic unit" type is intended to be equivalent to this class. * ninai/base/constructorzipper.py: class ArgumentLevel(NamedTuple): * ninai/base/constructorzipper.py: class ConstructorZipper(NamedTuple): ** [https://gitlab.com/mahir256/ninai/-/blob/main/ninai/base/constructorzipper.py#L26 "Due to the Wikifunctions requirement that all functions be pure functions, (the ConstructorZipper) has been introduced in order to assist the manipulation of (semantic units)."] A similar class was introduced in Udiron for the manipulation of syntactic units. As a result, it should be possible ** ❌ to either return modified inputs cheaply, or [[:w:en:Zipper (data structure)|to create modified versions of persistent data structures cheaply]] and return those. * ninai/base/interfaces.py: class ArgumentFilter(Protocol): ** Functions satisfying this protocol should produce semantic units (representing different kinds of meaning) as output. * ninai/base/argumentfilters.py: class ArgumentFilterOptions(NamedTuple): ** Since performance considerations <small>e.g. "any argument after the fourth is kept on the stack instead of moved into a register"</small> and various coding style guides discourage having large numbers of arguments when defining a function, this class exists to hold those when defining a new semantic unit. [https://gitlab.com/mahir256/ninai/-/blob/main/ninai/base/argumentfilters.py#L138 The members of that class are mostly assigned to other objects]. (See also the Wikifunctions requirement that all functions be pure functions.) As a result, it should be possible ** ❌ to cheaply handle large numbers of arguments provided to a function. * ninai/base/rendererarguments.py: class RendererArguments(NamedTuple): ** The desideratum in the previous sub-bullet point also applies here, although this object is passed around and manipulated versions returned across ''lots'' of different rendering steps (both in the base system and in user-defined functions), so it's worth repeating that it should be possible ** ❌ to '''''cheaply''''' handle large numbers of arguments provided to a function. * ninai/base/interfaces.py: class ArgumentFilterBasis(Protocol): ** This represents one of the arguments of an ArgumentFilterOptions: the function that produces a given type of semantic unit may be wholly tailored to that unit or simply be some other base function (like the [https://gitlab.com/mahir256/ninai/-/blob/main/ninai/base/argumentfilters.py#L23 "default"] and [https://gitlab.com/mahir256/ninai/-/blob/main/ninai/base/argumentfilters.py#L153 "passthrough"] functions). It is actually a partial function application that is stored and called when a semantic unit is provided arguments. As a result, it should be possible ** ❌ to store partial function calls in a semantic unit type-function mapping and use those. * ninai/base/constructormainrenderer.py: class ConstructorMainRenderer(NamedTuple): * ninai/base/constructorrenderer.py: class ConstructorRenderer(NamedTuple): * ninai/base/coreargumentprocessor.py: class CoreArgumentProcessor(NamedTuple): * ninai/base/coreargumentsrenderer.py: class CoreArgumentsRenderer(NamedTuple): * ninai/base/scopeargumentsrenderer.py: class ScopeArgumentsRenderer(NamedTuple): ** These classes encapsulate each of the steps that are actually run by the base Ninai system during semantic unit rendering, as described in [https://journals.sagepub.com/doi/full/10.3233/SW-243564 §5.1 of my paper]). As a result, it should be possible ** ❌ to run the functions defined by the base system for the rendering process without (in the case where all functions involved are written in Python) having to deal with overhead of serializing/deserializing objects at function call boundaries. * ninai/base/context.py: class ContextEntry(NamedTuple): * ninai/base/context.py: class Context(NamedTuple): ** [https://journals.sagepub.com/doi/full/10.3233/SW-243564 §4.1.2.: “Contexts” are lists representing where and how deep into a tree of Constructors a particular rendering step is occurring (effectively functioning like a stack trace).] As a result, it should be possible ** ❌ to expand and contract lists of tuples cheaply. * ninai/base/framing.py: class MethodKey(NamedTuple): * ninai/base/framing.py: class FramingKey(NamedTuple): ** These are used for indexing into Framings (see below), with the idea that the value returned from such an indexing is either a function or another Framing object entirely. * ninai/base/framing.py: class FramingDict(NamedTuple): * ninai/base/framing.py: class Framing(NamedTuple): ** [https://journals.sagepub.com/doi/full/10.3233/SW-243564 §4.1.2.: “Framings” hold information provided at the start of the Constructor rendering process to control the behavior of named individual Constructor types, named individual Constructors, individual languages, or some combination of all three.] ** The current implementation is largely inspired by the idea of [https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/Selectors CSS selectors]; the same sorts of symbols that denote certain features to select for (e.g. ".", "#", ":") may be used in a Framing selector as well. ** To satisfy Python type checkers, and to mitigate the inability to distinguish between e.g. "dict[str]" and "dict[int]" using a Python isinstance() check, keys into Framings (such as MethodKey and FramingKey listed above, along with EntityKey and StrKey from Udiron) distinguish between the possible types of the objects returned. Indexing into a Framing with an EntityKey will yield one of [https://gitlab.com/mahir256/udiron/-/blob/main/udiron/base/functionconfig.py#L158 several possible types] that ''can'' be distinguished by an isinstance() check; likewise with a StrKey yielding a string. As a result, it should be possible ** ❌ to check the types of values returned from arbitrary mappings cheaply. * ninai/base/interfaces.py: class PreHook(Protocol): * ninai/base/interfaces.py: class Renderer(Protocol): * ninai/base/interfaces.py: class PostHook(Protocol): * ninai/base/interfaces.py: class ArgPreHook(Protocol): * ninai/base/interfaces.py: class ArgPostHook(Protocol): ** Functions satisfying these protocols perform each of the steps of the semantic unit rendering process (as described in [https://journals.sagepub.com/doi/full/10.3233/SW-243564 §5.1 of my paper]). As a result, it should be possible ** ❌ to verify that a function in a particular (language, semantic unit type)-to-function mapping has the appropriate function signature. * ninai/base/interfaces.py: class SyntacticRoleFunction(Protocol): * ninai/base/interfaces.py: class InitialCatenaProcessor(Protocol): * ninai/base/interfaces.py: class ThematicInflectionAddition(Protocol): * ninai/base/interfaces.py: class InflectionFunction(Protocol): * ninai/base/interfaces.py: class ScopeOutputProcessor(Protocol): * ninai/base/interfaces.py: class ThematicRelationlessProcessor(Protocol): ** The notes in the previous sub-bullet point apply here too; functions matching these protocols perform steps of the process of rendering arbitrary predicates. * ninai/constructors/contexts/refcontext.py: class RefContextRenderer(NamedTuple): ** The notes in the sub-bullet point two before this one apply here as well. Given that this is created by a specific semantic unit's main renderer, rather than it being part of the base system (it does not live in the 'ninai/base' directory, after all), it should be possible ** ❌ to allow renderers to instantiate encapsulations of the state needed for their execution. * ninai/base/interfaces.py: class NinaiError(Exception): ** While this is not currently used much yet, it is intended to be saveable/serializable in the event the rendering process needs to be suspended (see "PausedRendererSupply" below), so that the specific source and cause of an error may be introspected. As a result, it should be possible ** ❌ to define arbitrary types of errors/exceptions to be thrown by code implementations. * ninai/base/interfaces.py: class RenderingPhase(IntEnum): * ninai/base/interfaces.py: class CoreArgumentProcessingPhase(IntEnum): ** These enumerations were created to keep track of the current state of a type of process (and to indicate from where a suspended version of that process should resume from; see "PausedRendererSupply" below). As a result, it should be possible ** ❌ to keep track of the particular level of a rendering process being executed and to save that tracking information. * ninai/graph/__init__.py: class FallbackRunner: ** This is instantiated whenever a direct sense link cannot be found and starts the process of running fallback steps specified per language (see "SenseFindingFallback" ff. below). * ninai/graph/server.py: class GraphServer: * ninai/graph/server.py: class ServerThread(threading.Thread): * ninai/graph/server.py: class GraphServerRepl(cmd.Cmd): ** These classes serve as scaffolding for threads that handle remote procedure calls for (NetworkX, but also graph-tool in the past) graph traversals from a starting item/lexeme/sense and return the results of those traversals (https://elemwala-backend.toolforge.org merely runs such threads). While the specific Python implementation need not exist in the same fashion as written, it should still be possible ** ❌ to traverse the full graph of connections between Wikidata entities having certain property links (for instance, to go from one sense to another three "synonym" statements away, or to go from one lexeme to another three "etymology" statements away); the current functions which simply run "haswbstatement:P5137" full-text searches are not sufficient. * ninai/base/interfaces.py: class CandidatePathNode(TypedDict): # due to XMLRPC serialization, must remain a TypedDict ** This holds two things: (1) a particular entity ID (item/lexeme/sense), and (2) a list of two-item tuples representing the links between the source entity of a traversal and that particular entity ID. If L789-S1 was three "translation" links away from L123-S1, and a traversal is run with L123-S1 as the starting point, then the CandidatePathNode for L789-S1 would have as its second element a list of three two-item tuples (for each of the three links). As a result, it should be possible ** ❌ to return not only entities linked to a given entity, but the (shortest) path between a source entity and that given entity, as part of a traversal. * ninai/base/interfaces.py: class SenseRefinement(Protocol): ** Functions satisfying this Protocol filter a list of * ninai/graph/client.py: class CandidateProcessor: ** Functions satisfying this Protocol filter a list of * ninai/base/pausedrenderersupply.py: class PausedRendererSupply(NamedTuple): ** This class was added to assist in something Maria Keet had asked for once: if a particular grammatical feature is not known at a point in the rendering process, and there isn't a clear way to proceed without knowing it, this should cause the rendering process to be ''paused'' and the user should be allowed to ''supply'' the missing information to the ''renderer'' and resume that process. As a result, it should be possible ** ❌ to return some state representation, in the event of an error within rendering, that can be resumed with appropriate information provided. * ninai/base/interfaces.py: class PreHookOperator(NamedTuple): * ninai/base/interfaces.py: class MainRendererOperator(NamedTuple): * ninai/base/interfaces.py: class PostHookOperator(NamedTuple): ** These exist merely to define a [[:w:en:Tagged union]] of possible types of functions usable by Ninai during certain rendering steps (see the note for PreHook, Renderer, PostHook above). Following from the previous bullet point, if a particular step is not defined for a language-semantic unit type combination, this should cause the rendering process to be ''paused'' and the user should be allowed to ''supply'' the missing function to the ''renderer'' and resume that process. * ninai/base/interfaces.py: class CatenaYieldingIterator(Protocol): ** Iterator classes matching this protocol, which otherwise could be reduced to individual functions, exist for a couple of reasons: **# Because Wikifunctions is based on principles exemplified by Haskell (which is not an implementation language, which has proper tail call optimization, but which does not have 'for' loops), and because Ninai/Udiron is written in Python (which is an implementation language, which does not optimize tail calls<ref>https://neopythonic.blogspot.com/2009/04/tail-recursion-elimination.html</ref>, but which has 'for' loops), such iterators return, in addition to the object they generate, a new iterator starting from the point at which that object was generated. **# Generators (and thus iterators) are not automatically serializable (indeed, even more comprehensive Python libraries than pickle cannot do so<ref>https://pypi.org/project/dill/</ref>), so these objects manually implement Python's iterator protocol. ** As a result of both of these things, it should be possible ** ❌ to serialize and deserialize the current state of a given sense finding process. * ninai/graph/client.py: class SenseFindingIterator: ** This represents the main starting point of the sense finding process, and is serializable for the reasons above. * ninai/base/interfaces.py: class SenseFindingFallback(CatenaYieldingIterator, Protocol): * ninai/graph/calque.py: class CalqueIterator: # finding equivalents for parts of a complex lexeme in a source language, and reassembling the equivalents in a target language * ninai/graph/calque.py: class VerboNominalSyntagmaCalque: # in the situation where a verb consists of e.g. (a noun) + "to do" * ninai/graph/calque.py: class EndocentricCompoundCalque: # in the situation where a noun consists of two other nouns, or an adjective attached to a noun * ninai/graph/calque.py: class DerivationCalque: # in the situation where a lexeme consists of another lexeme with a derivational affix * ninai/graph/fallbacks.py: class CatenaZipperListIterator: # returning choices from only a specific list of lexemes * ninai/graph/cognate.py: class CognateIterator: # returning lexemes in a target language that, via "derived from lexeme" statements, are etymologically related to a lexeme in a source language * ninai/graph/transcribe.py: class TranscribeIterator: # returning pseudo-lexemes that consist of another lexeme in a source language with its (phonetic/orthographic) representation converted to a target language * ninai/graph/__init__.py: class CatenaFromItemIdIterator: # simply produces a pseudo-lexeme whose lemma is the item label ** In addition to the notes about "CatenaYieldingIterator" above, these iterators perform fallback steps of different kinds, mainly involving finding parts/equivalents of other lexemes outside the target language. * ninai/base/interfaces.py: class Constructorify(Protocol): # not used yet, but will be reintroduced soon * ninai/base/interfaces.py: class Transcribe(Protocol): # actually performs the conversion of a (phonetic/orthographic) representation into a target language * ninai/base/interfaces.py: class BinominalCompoundCalque(Protocol): # actually reassembles the equivalents of two nouns (or an adjective and a noun) * ninai/base/interfaces.py: class DerivationalCalqueFunction(Protocol): # actually reassembles the equivalents of a lexeme and an attached affix ** Functions satisfying these protocols perform the steps in the target language of assembling a candidate word or phrase from any found equivalents. * ninai/renderers/mul.py: class FinalPunctuationFunction(Protocol): ** This simply represents a function that adds some punctuation to a phrase/clause. === Type aliases === (May be initially incomplete, since not all type aliases may have been marked with the "TypeAlias" type annotation. * ninai/base/constructorrenderer.py:RenderingPhaseEncapsulator: "TypeAlias" = Union[ConstructorMainRenderer, CoreArgumentsRenderer, ScopeArgumentsRenderer] ** ... * ninai/base/interfaces.py:ChildIdentifiersMapping: "TypeAlias" = Dict[str, Tuple[Tuple[str, ...], str]] ** ... * ninai/base/interfaces.py:CoreArguments: "TypeAlias" = Dict[str, "Constructor"] ** ... * ninai/base/interfaces.py:ScopeArguments: "TypeAlias" = List["Constructor"] ** ... * ninai/base/interfaces.py:ThematicRelationSpec: "TypeAlias" = Dict[str, Statement] ** ... * ninai/base/interfaces.py:NonConstructorTypeArguments: "TypeAlias" = Union[ ** ... * ninai/base/interfaces.py:ConstructorArgument: "TypeAlias" = Union["Constructor", NonConstructorTypeArguments] ** ... * ninai/base/interfaces.py:ConstructorArguments: "TypeAlias" = Sequence[ConstructorArgument] ** ... * ninai/graph/server.py:EntityGraph: TypeAlias = "nx.MultiDiGraph[str]" ** ... === Other objects === Some rough equivalents for the types named in the annotations below: * Dict = [[Z883]] * Set = (no equivalent, maybe [[Z883]] with [[Z1]] keys and [[Z41]] as the only value?) * List = [[Z881]] * Language = [[Z60]] (May be initially incomplete, since this is basically a list of entities not falling into any of the above types.) * ninai/base/constructorinterfaces.py:__constructor_argument_filters__: Dict[str, "ArgumentFilter"] = {} ** ... * ninai/base/constructorinterfaces.py:__constructor_core_arguments__: Dict[str, List[str]] = {} ** ... * ninai/base/constructorinterfaces.py:__constructor_docstrings__: Dict[str, str] = {} ** ... * ninai/base/constructorinterfaces.py:__constructor_type_hierarchy__: Dict[str, List[str]] = {} ** ... * ninai/base/constructorinterfaces.py:__config_insulators__: Set[str] = set() ** ... * ninai/base/constructorinterfaces.py:__config_setters__: Set[str] = set() ** ... * ninai/base/constructorinterfaces.py:__unfiltered_framing_constructors__: Set[str] = set() ** ... * ninai/graph/__init__.py:__fallback_chains__: DefaultDict[Language, DefaultDict[str, List[str]]] = defaultdict(lambda: defaultdict(list)) ** ... * ninai/graph/__init__.py:__fallback_chain_types__: Dict[str, Type[i.SenseFindingFallback]] = {...} ** ... * ninai/graph/client.py:__language_range__: Dict[Language, Tuple[tfsli.Qid, ...]] = {} ** ... * ninai/renderers/__mappings__.py:__arg_pre_hooks__: DefaultDict[str, DefaultDict[str, Dict["Language", "ArgPreHook"]]] = defaultdict(lambda: defaultdict(dict)) ** ... * ninai/renderers/__mappings__.py:__arg_post_hooks__: DefaultDict[str, DefaultDict[str, Dict["Language", "ArgPostHook"]]] = defaultdict(lambda: defaultdict(dict)) ** ... * ninai/renderers/__mappings__.py:__pre_hooks__: DefaultDict[str, Dict["Language", "PreHook"]] = defaultdict(dict) ** ... * ninai/renderers/__mappings__.py:__post_hooks__: DefaultDict[str, Dict["Language", "PostHook"]] = defaultdict(dict) ** ... * ninai/renderers/__mappings__.py:__renderers__: DefaultDict[str, Dict["Language", "Renderer"]] = defaultdict(dict) ** ... * ninai/renderers/__mappings__.py:__syntactic_role_functions__: DefaultDict[str, Dict["Language", "SyntacticRoleFunction"]] = defaultdict(dict) ** ... * ninai/renderers/__mappings__.py:__sense_refines__: Dict["Language", "SenseRefinement"] = {} ** ... * ninai/renderers/__mappings__.py:__initial_catena_processors__: Dict["Language", "InitialCatenaProcessor"] = {} ** ... * ninai/renderers/__mappings__.py:__thematic_inflection_additions__: Dict["Language", "ThematicInflectionAddition"] = {} ** ... * ninai/renderers/__mappings__.py:__inflection_functions__: Dict["Language", "InflectionFunction"] = {} ** ... * ninai/renderers/__mappings__.py:__scope_output_processors__: Dict["Language", "ScopeOutputProcessor"] = {} ** ... * ninai/renderers/__mappings__.py:__thematic_relationless_processors__: Dict["Language", "ThematicRelationlessProcessor"] = {} ** ... * ninai/renderers/__mappings__.py:__constructorifies__: Dict["Language", "Constructorify"] = {} ** ... * ninai/renderers/__mappings__.py:__transcribes__: Dict["Language", "Transcribe"] = {} ** ... * ninai/renderers/__mappings__.py:__binominal_calques__: Dict["Language", "BinominalCompoundCalque"] = {} ** ... * ninai/renderers/__mappings__.py:__derivation_calques__: Dict["Language", "DerivationalCalqueFunction"] = {} ** ... * ninai/renderers/mul.py:__full_stop_overrides__: Dict[Language, FinalPunctuationFunction] = {} ** ... == Missing Wikifunctions features for this type == @[[User:Mahir256|Mahir256]] What are the currently missing features of Wikifunctions that are necessary to actually implement this type? Which of these are fundamental, and which are just useful to port the code directly from Ninai? It could be useful to have them all listed in one place. [[User:Dv103|Dv103]] ([[User talk:Dv103|talk]]) 17:36, 16 June 2026 (UTC) *{{re|Dv103|Denny|DVrandecic (WMF)}} I have started assembling those above, where explanations are given for different classes' existence, and particular desiderata for implementation are given with a ❌ (any of which you're welcome to change to a ✅ if there is evidence that the thing described is possible). I leave it to you to decide which are 'fundamental' versus 'just useful'. [[User:Mahir256|Mahir256]] ([[User talk:Mahir256|talk]]) 22:58, 22 June 2026 (UTC) 3x97nogs3ftnumfhv213z6v9mxetws3 285888 285794 2026-06-23T07:49:36Z Dv103 11127 Inserted features that, as a first read, I am sure already exist on Wikifunctions 285888 wikitext text/x-wiki == Other possible types and objects == The following are lists of other entities defined in Ninai for the handling of Constructors. They were first assembled with the outputs of various <code>git grep</code> commands on the [https://gitlab.com/mahir256/ninai/ Ninai repository], and notes are provided below each about the nature of that declaration. Equivalents of many of these will be necessary, but levels of requirement will be marked as the notes below are filled in. === Classes === * ninai/base/constructor.py: class Constructor(NamedTuple): ** The "semantic unit" type is intended to be equivalent to this class. * ninai/base/constructorzipper.py: class ArgumentLevel(NamedTuple): * ninai/base/constructorzipper.py: class ConstructorZipper(NamedTuple): ** [https://gitlab.com/mahir256/ninai/-/blob/main/ninai/base/constructorzipper.py#L26 "Due to the Wikifunctions requirement that all functions be pure functions, (the ConstructorZipper) has been introduced in order to assist the manipulation of (semantic units)."] A similar class was introduced in Udiron for the manipulation of syntactic units. As a result, it should be possible ** ✅ to either return modified inputs cheaply, or [[:w:en:Zipper (data structure)|to create modified versions of persistent data structures cheaply]] and return those. <ref>Returning modified input is as cheap as every function call in Wikifunctions. If the modification is done through composition, using only builtin functions, it can become very cheap (in the order of some milliseconds).</ref> * ninai/base/interfaces.py: class ArgumentFilter(Protocol): ** Functions satisfying this protocol should produce semantic units (representing different kinds of meaning) as output. * ninai/base/argumentfilters.py: class ArgumentFilterOptions(NamedTuple): ** Since performance considerations <small>e.g. "any argument after the fourth is kept on the stack instead of moved into a register"</small> and various coding style guides discourage having large numbers of arguments when defining a function, this class exists to hold those when defining a new semantic unit. [https://gitlab.com/mahir256/ninai/-/blob/main/ninai/base/argumentfilters.py#L138 The members of that class are mostly assigned to other objects]. (See also the Wikifunctions requirement that all functions be pure functions.) As a result, it should be possible ** ❌ to cheaply handle large numbers of arguments provided to a function. * ninai/base/rendererarguments.py: class RendererArguments(NamedTuple): ** The desideratum in the previous sub-bullet point also applies here, although this object is passed around and manipulated versions returned across ''lots'' of different rendering steps (both in the base system and in user-defined functions), so it's worth repeating that it should be possible ** ❌ to '''''cheaply''''' handle large numbers of arguments provided to a function. * ninai/base/interfaces.py: class ArgumentFilterBasis(Protocol): ** This represents one of the arguments of an ArgumentFilterOptions: the function that produces a given type of semantic unit may be wholly tailored to that unit or simply be some other base function (like the [https://gitlab.com/mahir256/ninai/-/blob/main/ninai/base/argumentfilters.py#L23 "default"] and [https://gitlab.com/mahir256/ninai/-/blob/main/ninai/base/argumentfilters.py#L153 "passthrough"] functions). It is actually a partial function application that is stored and called when a semantic unit is provided arguments. As a result, it should be possible ** ❌ to store partial function calls in a semantic unit type-function mapping and use those. * ninai/base/constructormainrenderer.py: class ConstructorMainRenderer(NamedTuple): * ninai/base/constructorrenderer.py: class ConstructorRenderer(NamedTuple): * ninai/base/coreargumentprocessor.py: class CoreArgumentProcessor(NamedTuple): * ninai/base/coreargumentsrenderer.py: class CoreArgumentsRenderer(NamedTuple): * ninai/base/scopeargumentsrenderer.py: class ScopeArgumentsRenderer(NamedTuple): ** These classes encapsulate each of the steps that are actually run by the base Ninai system during semantic unit rendering, as described in [https://journals.sagepub.com/doi/full/10.3233/SW-243564 §5.1 of my paper]). As a result, it should be possible ** ❌ to run the functions defined by the base system for the rendering process without (in the case where all functions involved are written in Python) having to deal with overhead of serializing/deserializing objects at function call boundaries. * ninai/base/context.py: class ContextEntry(NamedTuple): * ninai/base/context.py: class Context(NamedTuple): ** [https://journals.sagepub.com/doi/full/10.3233/SW-243564 §4.1.2.: “Contexts” are lists representing where and how deep into a tree of Constructors a particular rendering step is occurring (effectively functioning like a stack trace).] As a result, it should be possible ** ❌ to expand and contract lists of tuples cheaply. * ninai/base/framing.py: class MethodKey(NamedTuple): * ninai/base/framing.py: class FramingKey(NamedTuple): ** These are used for indexing into Framings (see below), with the idea that the value returned from such an indexing is either a function or another Framing object entirely. * ninai/base/framing.py: class FramingDict(NamedTuple): * ninai/base/framing.py: class Framing(NamedTuple): ** [https://journals.sagepub.com/doi/full/10.3233/SW-243564 §4.1.2.: “Framings” hold information provided at the start of the Constructor rendering process to control the behavior of named individual Constructor types, named individual Constructors, individual languages, or some combination of all three.] ** The current implementation is largely inspired by the idea of [https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/Selectors CSS selectors]; the same sorts of symbols that denote certain features to select for (e.g. ".", "#", ":") may be used in a Framing selector as well. ** To satisfy Python type checkers, and to mitigate the inability to distinguish between e.g. "dict[str]" and "dict[int]" using a Python isinstance() check, keys into Framings (such as MethodKey and FramingKey listed above, along with EntityKey and StrKey from Udiron) distinguish between the possible types of the objects returned. Indexing into a Framing with an EntityKey will yield one of [https://gitlab.com/mahir256/udiron/-/blob/main/udiron/base/functionconfig.py#L158 several possible types] that ''can'' be distinguished by an isinstance() check; likewise with a StrKey yielding a string. As a result, it should be possible ** ❌ to check the types of values returned from arbitrary mappings cheaply. * ninai/base/interfaces.py: class PreHook(Protocol): * ninai/base/interfaces.py: class Renderer(Protocol): * ninai/base/interfaces.py: class PostHook(Protocol): * ninai/base/interfaces.py: class ArgPreHook(Protocol): * ninai/base/interfaces.py: class ArgPostHook(Protocol): ** Functions satisfying these protocols perform each of the steps of the semantic unit rendering process (as described in [https://journals.sagepub.com/doi/full/10.3233/SW-243564 §5.1 of my paper]). As a result, it should be possible ** ✅ to verify that a function in a particular (language, semantic unit type)-to-function mapping has the appropriate function signature.<ref>It is possible to [[Z21177|retrieve the signature of a function]].</ref> * ninai/base/interfaces.py: class SyntacticRoleFunction(Protocol): * ninai/base/interfaces.py: class InitialCatenaProcessor(Protocol): * ninai/base/interfaces.py: class ThematicInflectionAddition(Protocol): * ninai/base/interfaces.py: class InflectionFunction(Protocol): * ninai/base/interfaces.py: class ScopeOutputProcessor(Protocol): * ninai/base/interfaces.py: class ThematicRelationlessProcessor(Protocol): ** The notes in the previous sub-bullet point apply here too; functions matching these protocols perform steps of the process of rendering arbitrary predicates. * ninai/constructors/contexts/refcontext.py: class RefContextRenderer(NamedTuple): ** The notes in the sub-bullet point two before this one apply here as well. Given that this is created by a specific semantic unit's main renderer, rather than it being part of the base system (it does not live in the 'ninai/base' directory, after all), it should be possible ** ❌ to allow renderers to instantiate encapsulations of the state needed for their execution. * ninai/base/interfaces.py: class NinaiError(Exception): ** While this is not currently used much yet, it is intended to be saveable/serializable in the event the rendering process needs to be suspended (see "PausedRendererSupply" below), so that the specific source and cause of an error may be introspected. As a result, it should be possible ** ✅ to define arbitrary types of errors/exceptions to be thrown by code implementations.<ref>[[Wikifunctions:How_to_create_implementations#Wikifunctions_error_handling|User-defined errors]] exist on Wikifunctions, and function calls can throw them.</ref> * ninai/base/interfaces.py: class RenderingPhase(IntEnum): * ninai/base/interfaces.py: class CoreArgumentProcessingPhase(IntEnum): ** These enumerations were created to keep track of the current state of a type of process (and to indicate from where a suspended version of that process should resume from; see "PausedRendererSupply" below). As a result, it should be possible ** ❌ to keep track of the particular level of a rendering process being executed and to save that tracking information. * ninai/graph/__init__.py: class FallbackRunner: ** This is instantiated whenever a direct sense link cannot be found and starts the process of running fallback steps specified per language (see "SenseFindingFallback" ff. below). * ninai/graph/server.py: class GraphServer: * ninai/graph/server.py: class ServerThread(threading.Thread): * ninai/graph/server.py: class GraphServerRepl(cmd.Cmd): ** These classes serve as scaffolding for threads that handle remote procedure calls for (NetworkX, but also graph-tool in the past) graph traversals from a starting item/lexeme/sense and return the results of those traversals (https://elemwala-backend.toolforge.org merely runs such threads). While the specific Python implementation need not exist in the same fashion as written, it should still be possible ** ❌ to traverse the full graph of connections between Wikidata entities having certain property links (for instance, to go from one sense to another three "synonym" statements away, or to go from one lexeme to another three "etymology" statements away); the current functions which simply run "haswbstatement:P5137" full-text searches are not sufficient. * ninai/base/interfaces.py: class CandidatePathNode(TypedDict): # due to XMLRPC serialization, must remain a TypedDict ** This holds two things: (1) a particular entity ID (item/lexeme/sense), and (2) a list of two-item tuples representing the links between the source entity of a traversal and that particular entity ID. If L789-S1 was three "translation" links away from L123-S1, and a traversal is run with L123-S1 as the starting point, then the CandidatePathNode for L789-S1 would have as its second element a list of three two-item tuples (for each of the three links). As a result, it should be possible ** ❌ to return not only entities linked to a given entity, but the (shortest) path between a source entity and that given entity, as part of a traversal. * ninai/base/interfaces.py: class SenseRefinement(Protocol): ** Functions satisfying this Protocol filter a list of * ninai/graph/client.py: class CandidateProcessor: ** Functions satisfying this Protocol filter a list of * ninai/base/pausedrenderersupply.py: class PausedRendererSupply(NamedTuple): ** This class was added to assist in something Maria Keet had asked for once: if a particular grammatical feature is not known at a point in the rendering process, and there isn't a clear way to proceed without knowing it, this should cause the rendering process to be ''paused'' and the user should be allowed to ''supply'' the missing information to the ''renderer'' and resume that process. As a result, it should be possible ** ❌ to return some state representation, in the event of an error within rendering, that can be resumed with appropriate information provided. * ninai/base/interfaces.py: class PreHookOperator(NamedTuple): * ninai/base/interfaces.py: class MainRendererOperator(NamedTuple): * ninai/base/interfaces.py: class PostHookOperator(NamedTuple): ** These exist merely to define a [[:w:en:Tagged union]] of possible types of functions usable by Ninai during certain rendering steps (see the note for PreHook, Renderer, PostHook above). Following from the previous bullet point, if a particular step is not defined for a language-semantic unit type combination, this should cause the rendering process to be ''paused'' and the user should be allowed to ''supply'' the missing function to the ''renderer'' and resume that process. * ninai/base/interfaces.py: class CatenaYieldingIterator(Protocol): ** Iterator classes matching this protocol, which otherwise could be reduced to individual functions, exist for a couple of reasons: **# Because Wikifunctions is based on principles exemplified by Haskell (which is not an implementation language, which has proper tail call optimization, but which does not have 'for' loops), and because Ninai/Udiron is written in Python (which is an implementation language, which does not optimize tail calls<ref>https://neopythonic.blogspot.com/2009/04/tail-recursion-elimination.html</ref>, but which has 'for' loops), such iterators return, in addition to the object they generate, a new iterator starting from the point at which that object was generated. **# Generators (and thus iterators) are not automatically serializable (indeed, even more comprehensive Python libraries than pickle cannot do so<ref>https://pypi.org/project/dill/</ref>), so these objects manually implement Python's iterator protocol. ** As a result of both of these things, it should be possible ** ❌ to serialize and deserialize the current state of a given sense finding process. * ninai/graph/client.py: class SenseFindingIterator: ** This represents the main starting point of the sense finding process, and is serializable for the reasons above. * ninai/base/interfaces.py: class SenseFindingFallback(CatenaYieldingIterator, Protocol): * ninai/graph/calque.py: class CalqueIterator: # finding equivalents for parts of a complex lexeme in a source language, and reassembling the equivalents in a target language * ninai/graph/calque.py: class VerboNominalSyntagmaCalque: # in the situation where a verb consists of e.g. (a noun) + "to do" * ninai/graph/calque.py: class EndocentricCompoundCalque: # in the situation where a noun consists of two other nouns, or an adjective attached to a noun * ninai/graph/calque.py: class DerivationCalque: # in the situation where a lexeme consists of another lexeme with a derivational affix * ninai/graph/fallbacks.py: class CatenaZipperListIterator: # returning choices from only a specific list of lexemes * ninai/graph/cognate.py: class CognateIterator: # returning lexemes in a target language that, via "derived from lexeme" statements, are etymologically related to a lexeme in a source language * ninai/graph/transcribe.py: class TranscribeIterator: # returning pseudo-lexemes that consist of another lexeme in a source language with its (phonetic/orthographic) representation converted to a target language * ninai/graph/__init__.py: class CatenaFromItemIdIterator: # simply produces a pseudo-lexeme whose lemma is the item label ** In addition to the notes about "CatenaYieldingIterator" above, these iterators perform fallback steps of different kinds, mainly involving finding parts/equivalents of other lexemes outside the target language. * ninai/base/interfaces.py: class Constructorify(Protocol): # not used yet, but will be reintroduced soon * ninai/base/interfaces.py: class Transcribe(Protocol): # actually performs the conversion of a (phonetic/orthographic) representation into a target language * ninai/base/interfaces.py: class BinominalCompoundCalque(Protocol): # actually reassembles the equivalents of two nouns (or an adjective and a noun) * ninai/base/interfaces.py: class DerivationalCalqueFunction(Protocol): # actually reassembles the equivalents of a lexeme and an attached affix ** Functions satisfying these protocols perform the steps in the target language of assembling a candidate word or phrase from any found equivalents. * ninai/renderers/mul.py: class FinalPunctuationFunction(Protocol): ** This simply represents a function that adds some punctuation to a phrase/clause. === Type aliases === (May be initially incomplete, since not all type aliases may have been marked with the "TypeAlias" type annotation. * ninai/base/constructorrenderer.py:RenderingPhaseEncapsulator: "TypeAlias" = Union[ConstructorMainRenderer, CoreArgumentsRenderer, ScopeArgumentsRenderer] ** ... * ninai/base/interfaces.py:ChildIdentifiersMapping: "TypeAlias" = Dict[str, Tuple[Tuple[str, ...], str]] ** ... * ninai/base/interfaces.py:CoreArguments: "TypeAlias" = Dict[str, "Constructor"] ** ... * ninai/base/interfaces.py:ScopeArguments: "TypeAlias" = List["Constructor"] ** ... * ninai/base/interfaces.py:ThematicRelationSpec: "TypeAlias" = Dict[str, Statement] ** ... * ninai/base/interfaces.py:NonConstructorTypeArguments: "TypeAlias" = Union[ ** ... * ninai/base/interfaces.py:ConstructorArgument: "TypeAlias" = Union["Constructor", NonConstructorTypeArguments] ** ... * ninai/base/interfaces.py:ConstructorArguments: "TypeAlias" = Sequence[ConstructorArgument] ** ... * ninai/graph/server.py:EntityGraph: TypeAlias = "nx.MultiDiGraph[str]" ** ... === Other objects === Some rough equivalents for the types named in the annotations below: * Dict = [[Z883]] * Set = (no equivalent, maybe [[Z883]] with [[Z1]] keys and [[Z41]] as the only value?) * List = [[Z881]] * Language = [[Z60]] (May be initially incomplete, since this is basically a list of entities not falling into any of the above types.) * ninai/base/constructorinterfaces.py:__constructor_argument_filters__: Dict[str, "ArgumentFilter"] = {} ** ... * ninai/base/constructorinterfaces.py:__constructor_core_arguments__: Dict[str, List[str]] = {} ** ... * ninai/base/constructorinterfaces.py:__constructor_docstrings__: Dict[str, str] = {} ** ... * ninai/base/constructorinterfaces.py:__constructor_type_hierarchy__: Dict[str, List[str]] = {} ** ... * ninai/base/constructorinterfaces.py:__config_insulators__: Set[str] = set() ** ... * ninai/base/constructorinterfaces.py:__config_setters__: Set[str] = set() ** ... * ninai/base/constructorinterfaces.py:__unfiltered_framing_constructors__: Set[str] = set() ** ... * ninai/graph/__init__.py:__fallback_chains__: DefaultDict[Language, DefaultDict[str, List[str]]] = defaultdict(lambda: defaultdict(list)) ** ... * ninai/graph/__init__.py:__fallback_chain_types__: Dict[str, Type[i.SenseFindingFallback]] = {...} ** ... * ninai/graph/client.py:__language_range__: Dict[Language, Tuple[tfsli.Qid, ...]] = {} ** ... * ninai/renderers/__mappings__.py:__arg_pre_hooks__: DefaultDict[str, DefaultDict[str, Dict["Language", "ArgPreHook"]]] = defaultdict(lambda: defaultdict(dict)) ** ... * ninai/renderers/__mappings__.py:__arg_post_hooks__: DefaultDict[str, DefaultDict[str, Dict["Language", "ArgPostHook"]]] = defaultdict(lambda: defaultdict(dict)) ** ... * ninai/renderers/__mappings__.py:__pre_hooks__: DefaultDict[str, Dict["Language", "PreHook"]] = defaultdict(dict) ** ... * ninai/renderers/__mappings__.py:__post_hooks__: DefaultDict[str, Dict["Language", "PostHook"]] = defaultdict(dict) ** ... * ninai/renderers/__mappings__.py:__renderers__: DefaultDict[str, Dict["Language", "Renderer"]] = defaultdict(dict) ** ... * ninai/renderers/__mappings__.py:__syntactic_role_functions__: DefaultDict[str, Dict["Language", "SyntacticRoleFunction"]] = defaultdict(dict) ** ... * ninai/renderers/__mappings__.py:__sense_refines__: Dict["Language", "SenseRefinement"] = {} ** ... * ninai/renderers/__mappings__.py:__initial_catena_processors__: Dict["Language", "InitialCatenaProcessor"] = {} ** ... * ninai/renderers/__mappings__.py:__thematic_inflection_additions__: Dict["Language", "ThematicInflectionAddition"] = {} ** ... * ninai/renderers/__mappings__.py:__inflection_functions__: Dict["Language", "InflectionFunction"] = {} ** ... * ninai/renderers/__mappings__.py:__scope_output_processors__: Dict["Language", "ScopeOutputProcessor"] = {} ** ... * ninai/renderers/__mappings__.py:__thematic_relationless_processors__: Dict["Language", "ThematicRelationlessProcessor"] = {} ** ... * ninai/renderers/__mappings__.py:__constructorifies__: Dict["Language", "Constructorify"] = {} ** ... * ninai/renderers/__mappings__.py:__transcribes__: Dict["Language", "Transcribe"] = {} ** ... * ninai/renderers/__mappings__.py:__binominal_calques__: Dict["Language", "BinominalCompoundCalque"] = {} ** ... * ninai/renderers/__mappings__.py:__derivation_calques__: Dict["Language", "DerivationalCalqueFunction"] = {} ** ... * ninai/renderers/mul.py:__full_stop_overrides__: Dict[Language, FinalPunctuationFunction] = {} ** ... <references/> == Missing Wikifunctions features for this type == @[[User:Mahir256|Mahir256]] What are the currently missing features of Wikifunctions that are necessary to actually implement this type? Which of these are fundamental, and which are just useful to port the code directly from Ninai? It could be useful to have them all listed in one place. [[User:Dv103|Dv103]] ([[User talk:Dv103|talk]]) 17:36, 16 June 2026 (UTC) *{{re|Dv103|Denny|DVrandecic (WMF)}} I have started assembling those above, where explanations are given for different classes' existence, and particular desiderata for implementation are given with a ❌ (any of which you're welcome to change to a ✅ if there is evidence that the thing described is possible). I leave it to you to decide which are 'fundamental' versus 'just useful'. [[User:Mahir256|Mahir256]] ([[User talk:Mahir256|talk]]) 22:58, 22 June 2026 (UTC) pk3e036bj0hcedcf9fcv1cg0bc1nqdy 285889 285888 2026-06-23T07:54:25Z Dv103 11127 /* Missing Wikifunctions features for this type */ Reply 285889 wikitext text/x-wiki == Other possible types and objects == The following are lists of other entities defined in Ninai for the handling of Constructors. They were first assembled with the outputs of various <code>git grep</code> commands on the [https://gitlab.com/mahir256/ninai/ Ninai repository], and notes are provided below each about the nature of that declaration. Equivalents of many of these will be necessary, but levels of requirement will be marked as the notes below are filled in. === Classes === * ninai/base/constructor.py: class Constructor(NamedTuple): ** The "semantic unit" type is intended to be equivalent to this class. * ninai/base/constructorzipper.py: class ArgumentLevel(NamedTuple): * ninai/base/constructorzipper.py: class ConstructorZipper(NamedTuple): ** [https://gitlab.com/mahir256/ninai/-/blob/main/ninai/base/constructorzipper.py#L26 "Due to the Wikifunctions requirement that all functions be pure functions, (the ConstructorZipper) has been introduced in order to assist the manipulation of (semantic units)."] A similar class was introduced in Udiron for the manipulation of syntactic units. As a result, it should be possible ** ✅ to either return modified inputs cheaply, or [[:w:en:Zipper (data structure)|to create modified versions of persistent data structures cheaply]] and return those. <ref>Returning modified input is as cheap as every function call in Wikifunctions. If the modification is done through composition, using only builtin functions, it can become very cheap (in the order of some milliseconds).</ref> * ninai/base/interfaces.py: class ArgumentFilter(Protocol): ** Functions satisfying this protocol should produce semantic units (representing different kinds of meaning) as output. * ninai/base/argumentfilters.py: class ArgumentFilterOptions(NamedTuple): ** Since performance considerations <small>e.g. "any argument after the fourth is kept on the stack instead of moved into a register"</small> and various coding style guides discourage having large numbers of arguments when defining a function, this class exists to hold those when defining a new semantic unit. [https://gitlab.com/mahir256/ninai/-/blob/main/ninai/base/argumentfilters.py#L138 The members of that class are mostly assigned to other objects]. (See also the Wikifunctions requirement that all functions be pure functions.) As a result, it should be possible ** ❌ to cheaply handle large numbers of arguments provided to a function. * ninai/base/rendererarguments.py: class RendererArguments(NamedTuple): ** The desideratum in the previous sub-bullet point also applies here, although this object is passed around and manipulated versions returned across ''lots'' of different rendering steps (both in the base system and in user-defined functions), so it's worth repeating that it should be possible ** ❌ to '''''cheaply''''' handle large numbers of arguments provided to a function. * ninai/base/interfaces.py: class ArgumentFilterBasis(Protocol): ** This represents one of the arguments of an ArgumentFilterOptions: the function that produces a given type of semantic unit may be wholly tailored to that unit or simply be some other base function (like the [https://gitlab.com/mahir256/ninai/-/blob/main/ninai/base/argumentfilters.py#L23 "default"] and [https://gitlab.com/mahir256/ninai/-/blob/main/ninai/base/argumentfilters.py#L153 "passthrough"] functions). It is actually a partial function application that is stored and called when a semantic unit is provided arguments. As a result, it should be possible ** ❌ to store partial function calls in a semantic unit type-function mapping and use those. * ninai/base/constructormainrenderer.py: class ConstructorMainRenderer(NamedTuple): * ninai/base/constructorrenderer.py: class ConstructorRenderer(NamedTuple): * ninai/base/coreargumentprocessor.py: class CoreArgumentProcessor(NamedTuple): * ninai/base/coreargumentsrenderer.py: class CoreArgumentsRenderer(NamedTuple): * ninai/base/scopeargumentsrenderer.py: class ScopeArgumentsRenderer(NamedTuple): ** These classes encapsulate each of the steps that are actually run by the base Ninai system during semantic unit rendering, as described in [https://journals.sagepub.com/doi/full/10.3233/SW-243564 §5.1 of my paper]). As a result, it should be possible ** ❌ to run the functions defined by the base system for the rendering process without (in the case where all functions involved are written in Python) having to deal with overhead of serializing/deserializing objects at function call boundaries. * ninai/base/context.py: class ContextEntry(NamedTuple): * ninai/base/context.py: class Context(NamedTuple): ** [https://journals.sagepub.com/doi/full/10.3233/SW-243564 §4.1.2.: “Contexts” are lists representing where and how deep into a tree of Constructors a particular rendering step is occurring (effectively functioning like a stack trace).] As a result, it should be possible ** ❌ to expand and contract lists of tuples cheaply. * ninai/base/framing.py: class MethodKey(NamedTuple): * ninai/base/framing.py: class FramingKey(NamedTuple): ** These are used for indexing into Framings (see below), with the idea that the value returned from such an indexing is either a function or another Framing object entirely. * ninai/base/framing.py: class FramingDict(NamedTuple): * ninai/base/framing.py: class Framing(NamedTuple): ** [https://journals.sagepub.com/doi/full/10.3233/SW-243564 §4.1.2.: “Framings” hold information provided at the start of the Constructor rendering process to control the behavior of named individual Constructor types, named individual Constructors, individual languages, or some combination of all three.] ** The current implementation is largely inspired by the idea of [https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/Selectors CSS selectors]; the same sorts of symbols that denote certain features to select for (e.g. ".", "#", ":") may be used in a Framing selector as well. ** To satisfy Python type checkers, and to mitigate the inability to distinguish between e.g. "dict[str]" and "dict[int]" using a Python isinstance() check, keys into Framings (such as MethodKey and FramingKey listed above, along with EntityKey and StrKey from Udiron) distinguish between the possible types of the objects returned. Indexing into a Framing with an EntityKey will yield one of [https://gitlab.com/mahir256/udiron/-/blob/main/udiron/base/functionconfig.py#L158 several possible types] that ''can'' be distinguished by an isinstance() check; likewise with a StrKey yielding a string. As a result, it should be possible ** ❌ to check the types of values returned from arbitrary mappings cheaply. * ninai/base/interfaces.py: class PreHook(Protocol): * ninai/base/interfaces.py: class Renderer(Protocol): * ninai/base/interfaces.py: class PostHook(Protocol): * ninai/base/interfaces.py: class ArgPreHook(Protocol): * ninai/base/interfaces.py: class ArgPostHook(Protocol): ** Functions satisfying these protocols perform each of the steps of the semantic unit rendering process (as described in [https://journals.sagepub.com/doi/full/10.3233/SW-243564 §5.1 of my paper]). As a result, it should be possible ** ✅ to verify that a function in a particular (language, semantic unit type)-to-function mapping has the appropriate function signature.<ref>It is possible to [[Z21177|retrieve the signature of a function]].</ref> * ninai/base/interfaces.py: class SyntacticRoleFunction(Protocol): * ninai/base/interfaces.py: class InitialCatenaProcessor(Protocol): * ninai/base/interfaces.py: class ThematicInflectionAddition(Protocol): * ninai/base/interfaces.py: class InflectionFunction(Protocol): * ninai/base/interfaces.py: class ScopeOutputProcessor(Protocol): * ninai/base/interfaces.py: class ThematicRelationlessProcessor(Protocol): ** The notes in the previous sub-bullet point apply here too; functions matching these protocols perform steps of the process of rendering arbitrary predicates. * ninai/constructors/contexts/refcontext.py: class RefContextRenderer(NamedTuple): ** The notes in the sub-bullet point two before this one apply here as well. Given that this is created by a specific semantic unit's main renderer, rather than it being part of the base system (it does not live in the 'ninai/base' directory, after all), it should be possible ** ❌ to allow renderers to instantiate encapsulations of the state needed for their execution. * ninai/base/interfaces.py: class NinaiError(Exception): ** While this is not currently used much yet, it is intended to be saveable/serializable in the event the rendering process needs to be suspended (see "PausedRendererSupply" below), so that the specific source and cause of an error may be introspected. As a result, it should be possible ** ✅ to define arbitrary types of errors/exceptions to be thrown by code implementations.<ref>[[Wikifunctions:How_to_create_implementations#Wikifunctions_error_handling|User-defined errors]] exist on Wikifunctions, and function calls can throw them.</ref> * ninai/base/interfaces.py: class RenderingPhase(IntEnum): * ninai/base/interfaces.py: class CoreArgumentProcessingPhase(IntEnum): ** These enumerations were created to keep track of the current state of a type of process (and to indicate from where a suspended version of that process should resume from; see "PausedRendererSupply" below). As a result, it should be possible ** ❌ to keep track of the particular level of a rendering process being executed and to save that tracking information. * ninai/graph/__init__.py: class FallbackRunner: ** This is instantiated whenever a direct sense link cannot be found and starts the process of running fallback steps specified per language (see "SenseFindingFallback" ff. below). * ninai/graph/server.py: class GraphServer: * ninai/graph/server.py: class ServerThread(threading.Thread): * ninai/graph/server.py: class GraphServerRepl(cmd.Cmd): ** These classes serve as scaffolding for threads that handle remote procedure calls for (NetworkX, but also graph-tool in the past) graph traversals from a starting item/lexeme/sense and return the results of those traversals (https://elemwala-backend.toolforge.org merely runs such threads). While the specific Python implementation need not exist in the same fashion as written, it should still be possible ** ❌ to traverse the full graph of connections between Wikidata entities having certain property links (for instance, to go from one sense to another three "synonym" statements away, or to go from one lexeme to another three "etymology" statements away); the current functions which simply run "haswbstatement:P5137" full-text searches are not sufficient. * ninai/base/interfaces.py: class CandidatePathNode(TypedDict): # due to XMLRPC serialization, must remain a TypedDict ** This holds two things: (1) a particular entity ID (item/lexeme/sense), and (2) a list of two-item tuples representing the links between the source entity of a traversal and that particular entity ID. If L789-S1 was three "translation" links away from L123-S1, and a traversal is run with L123-S1 as the starting point, then the CandidatePathNode for L789-S1 would have as its second element a list of three two-item tuples (for each of the three links). As a result, it should be possible ** ❌ to return not only entities linked to a given entity, but the (shortest) path between a source entity and that given entity, as part of a traversal. * ninai/base/interfaces.py: class SenseRefinement(Protocol): ** Functions satisfying this Protocol filter a list of * ninai/graph/client.py: class CandidateProcessor: ** Functions satisfying this Protocol filter a list of * ninai/base/pausedrenderersupply.py: class PausedRendererSupply(NamedTuple): ** This class was added to assist in something Maria Keet had asked for once: if a particular grammatical feature is not known at a point in the rendering process, and there isn't a clear way to proceed without knowing it, this should cause the rendering process to be ''paused'' and the user should be allowed to ''supply'' the missing information to the ''renderer'' and resume that process. As a result, it should be possible ** ❌ to return some state representation, in the event of an error within rendering, that can be resumed with appropriate information provided. * ninai/base/interfaces.py: class PreHookOperator(NamedTuple): * ninai/base/interfaces.py: class MainRendererOperator(NamedTuple): * ninai/base/interfaces.py: class PostHookOperator(NamedTuple): ** These exist merely to define a [[:w:en:Tagged union]] of possible types of functions usable by Ninai during certain rendering steps (see the note for PreHook, Renderer, PostHook above). Following from the previous bullet point, if a particular step is not defined for a language-semantic unit type combination, this should cause the rendering process to be ''paused'' and the user should be allowed to ''supply'' the missing function to the ''renderer'' and resume that process. * ninai/base/interfaces.py: class CatenaYieldingIterator(Protocol): ** Iterator classes matching this protocol, which otherwise could be reduced to individual functions, exist for a couple of reasons: **# Because Wikifunctions is based on principles exemplified by Haskell (which is not an implementation language, which has proper tail call optimization, but which does not have 'for' loops), and because Ninai/Udiron is written in Python (which is an implementation language, which does not optimize tail calls<ref>https://neopythonic.blogspot.com/2009/04/tail-recursion-elimination.html</ref>, but which has 'for' loops), such iterators return, in addition to the object they generate, a new iterator starting from the point at which that object was generated. **# Generators (and thus iterators) are not automatically serializable (indeed, even more comprehensive Python libraries than pickle cannot do so<ref>https://pypi.org/project/dill/</ref>), so these objects manually implement Python's iterator protocol. ** As a result of both of these things, it should be possible ** ❌ to serialize and deserialize the current state of a given sense finding process. * ninai/graph/client.py: class SenseFindingIterator: ** This represents the main starting point of the sense finding process, and is serializable for the reasons above. * ninai/base/interfaces.py: class SenseFindingFallback(CatenaYieldingIterator, Protocol): * ninai/graph/calque.py: class CalqueIterator: # finding equivalents for parts of a complex lexeme in a source language, and reassembling the equivalents in a target language * ninai/graph/calque.py: class VerboNominalSyntagmaCalque: # in the situation where a verb consists of e.g. (a noun) + "to do" * ninai/graph/calque.py: class EndocentricCompoundCalque: # in the situation where a noun consists of two other nouns, or an adjective attached to a noun * ninai/graph/calque.py: class DerivationCalque: # in the situation where a lexeme consists of another lexeme with a derivational affix * ninai/graph/fallbacks.py: class CatenaZipperListIterator: # returning choices from only a specific list of lexemes * ninai/graph/cognate.py: class CognateIterator: # returning lexemes in a target language that, via "derived from lexeme" statements, are etymologically related to a lexeme in a source language * ninai/graph/transcribe.py: class TranscribeIterator: # returning pseudo-lexemes that consist of another lexeme in a source language with its (phonetic/orthographic) representation converted to a target language * ninai/graph/__init__.py: class CatenaFromItemIdIterator: # simply produces a pseudo-lexeme whose lemma is the item label ** In addition to the notes about "CatenaYieldingIterator" above, these iterators perform fallback steps of different kinds, mainly involving finding parts/equivalents of other lexemes outside the target language. * ninai/base/interfaces.py: class Constructorify(Protocol): # not used yet, but will be reintroduced soon * ninai/base/interfaces.py: class Transcribe(Protocol): # actually performs the conversion of a (phonetic/orthographic) representation into a target language * ninai/base/interfaces.py: class BinominalCompoundCalque(Protocol): # actually reassembles the equivalents of two nouns (or an adjective and a noun) * ninai/base/interfaces.py: class DerivationalCalqueFunction(Protocol): # actually reassembles the equivalents of a lexeme and an attached affix ** Functions satisfying these protocols perform the steps in the target language of assembling a candidate word or phrase from any found equivalents. * ninai/renderers/mul.py: class FinalPunctuationFunction(Protocol): ** This simply represents a function that adds some punctuation to a phrase/clause. === Type aliases === (May be initially incomplete, since not all type aliases may have been marked with the "TypeAlias" type annotation. * ninai/base/constructorrenderer.py:RenderingPhaseEncapsulator: "TypeAlias" = Union[ConstructorMainRenderer, CoreArgumentsRenderer, ScopeArgumentsRenderer] ** ... * ninai/base/interfaces.py:ChildIdentifiersMapping: "TypeAlias" = Dict[str, Tuple[Tuple[str, ...], str]] ** ... * ninai/base/interfaces.py:CoreArguments: "TypeAlias" = Dict[str, "Constructor"] ** ... * ninai/base/interfaces.py:ScopeArguments: "TypeAlias" = List["Constructor"] ** ... * ninai/base/interfaces.py:ThematicRelationSpec: "TypeAlias" = Dict[str, Statement] ** ... * ninai/base/interfaces.py:NonConstructorTypeArguments: "TypeAlias" = Union[ ** ... * ninai/base/interfaces.py:ConstructorArgument: "TypeAlias" = Union["Constructor", NonConstructorTypeArguments] ** ... * ninai/base/interfaces.py:ConstructorArguments: "TypeAlias" = Sequence[ConstructorArgument] ** ... * ninai/graph/server.py:EntityGraph: TypeAlias = "nx.MultiDiGraph[str]" ** ... === Other objects === Some rough equivalents for the types named in the annotations below: * Dict = [[Z883]] * Set = (no equivalent, maybe [[Z883]] with [[Z1]] keys and [[Z41]] as the only value?) * List = [[Z881]] * Language = [[Z60]] (May be initially incomplete, since this is basically a list of entities not falling into any of the above types.) * ninai/base/constructorinterfaces.py:__constructor_argument_filters__: Dict[str, "ArgumentFilter"] = {} ** ... * ninai/base/constructorinterfaces.py:__constructor_core_arguments__: Dict[str, List[str]] = {} ** ... * ninai/base/constructorinterfaces.py:__constructor_docstrings__: Dict[str, str] = {} ** ... * ninai/base/constructorinterfaces.py:__constructor_type_hierarchy__: Dict[str, List[str]] = {} ** ... * ninai/base/constructorinterfaces.py:__config_insulators__: Set[str] = set() ** ... * ninai/base/constructorinterfaces.py:__config_setters__: Set[str] = set() ** ... * ninai/base/constructorinterfaces.py:__unfiltered_framing_constructors__: Set[str] = set() ** ... * ninai/graph/__init__.py:__fallback_chains__: DefaultDict[Language, DefaultDict[str, List[str]]] = defaultdict(lambda: defaultdict(list)) ** ... * ninai/graph/__init__.py:__fallback_chain_types__: Dict[str, Type[i.SenseFindingFallback]] = {...} ** ... * ninai/graph/client.py:__language_range__: Dict[Language, Tuple[tfsli.Qid, ...]] = {} ** ... * ninai/renderers/__mappings__.py:__arg_pre_hooks__: DefaultDict[str, DefaultDict[str, Dict["Language", "ArgPreHook"]]] = defaultdict(lambda: defaultdict(dict)) ** ... * ninai/renderers/__mappings__.py:__arg_post_hooks__: DefaultDict[str, DefaultDict[str, Dict["Language", "ArgPostHook"]]] = defaultdict(lambda: defaultdict(dict)) ** ... * ninai/renderers/__mappings__.py:__pre_hooks__: DefaultDict[str, Dict["Language", "PreHook"]] = defaultdict(dict) ** ... * ninai/renderers/__mappings__.py:__post_hooks__: DefaultDict[str, Dict["Language", "PostHook"]] = defaultdict(dict) ** ... * ninai/renderers/__mappings__.py:__renderers__: DefaultDict[str, Dict["Language", "Renderer"]] = defaultdict(dict) ** ... * ninai/renderers/__mappings__.py:__syntactic_role_functions__: DefaultDict[str, Dict["Language", "SyntacticRoleFunction"]] = defaultdict(dict) ** ... * ninai/renderers/__mappings__.py:__sense_refines__: Dict["Language", "SenseRefinement"] = {} ** ... * ninai/renderers/__mappings__.py:__initial_catena_processors__: Dict["Language", "InitialCatenaProcessor"] = {} ** ... * ninai/renderers/__mappings__.py:__thematic_inflection_additions__: Dict["Language", "ThematicInflectionAddition"] = {} ** ... * ninai/renderers/__mappings__.py:__inflection_functions__: Dict["Language", "InflectionFunction"] = {} ** ... * ninai/renderers/__mappings__.py:__scope_output_processors__: Dict["Language", "ScopeOutputProcessor"] = {} ** ... * ninai/renderers/__mappings__.py:__thematic_relationless_processors__: Dict["Language", "ThematicRelationlessProcessor"] = {} ** ... * ninai/renderers/__mappings__.py:__constructorifies__: Dict["Language", "Constructorify"] = {} ** ... * ninai/renderers/__mappings__.py:__transcribes__: Dict["Language", "Transcribe"] = {} ** ... * ninai/renderers/__mappings__.py:__binominal_calques__: Dict["Language", "BinominalCompoundCalque"] = {} ** ... * ninai/renderers/__mappings__.py:__derivation_calques__: Dict["Language", "DerivationalCalqueFunction"] = {} ** ... * ninai/renderers/mul.py:__full_stop_overrides__: Dict[Language, FinalPunctuationFunction] = {} ** ... <references/> == Missing Wikifunctions features for this type == @[[User:Mahir256|Mahir256]] What are the currently missing features of Wikifunctions that are necessary to actually implement this type? Which of these are fundamental, and which are just useful to port the code directly from Ninai? It could be useful to have them all listed in one place. [[User:Dv103|Dv103]] ([[User talk:Dv103|talk]]) 17:36, 16 June 2026 (UTC) *{{re|Dv103|Denny|DVrandecic (WMF)}} I have started assembling those above, where explanations are given for different classes' existence, and particular desiderata for implementation are given with a ❌ (any of which you're welcome to change to a ✅ if there is evidence that the thing described is possible). I leave it to you to decide which are 'fundamental' versus 'just useful'. [[User:Mahir256|Mahir256]] ([[User talk:Mahir256|talk]]) 22:58, 22 June 2026 (UTC) *:A thing about sets: what is the issue in using {{Z|Z881}} to encode them? Wikifunctions already contains lists that are treated as sets. We already have functions to treat typed list as if they were sets (i.e., ignoring the order). Also consider that, under the hood, {{Z|Z883}} is just a wrapper for a {{Z|Z881}} of {{Z|Z882}}. [[User:Dv103|Dv103]] ([[User talk:Dv103|talk]]) 07:54, 23 June 2026 (UTC) k1tc0pk6slwr6u9qln67xzppkrvobp7 285890 285889 2026-06-23T07:56:53Z Dv103 11127 /* Classes */ I misunderstood the required feature 285890 wikitext text/x-wiki == Other possible types and objects == The following are lists of other entities defined in Ninai for the handling of Constructors. They were first assembled with the outputs of various <code>git grep</code> commands on the [https://gitlab.com/mahir256/ninai/ Ninai repository], and notes are provided below each about the nature of that declaration. Equivalents of many of these will be necessary, but levels of requirement will be marked as the notes below are filled in. === Classes === * ninai/base/constructor.py: class Constructor(NamedTuple): ** The "semantic unit" type is intended to be equivalent to this class. * ninai/base/constructorzipper.py: class ArgumentLevel(NamedTuple): * ninai/base/constructorzipper.py: class ConstructorZipper(NamedTuple): ** [https://gitlab.com/mahir256/ninai/-/blob/main/ninai/base/constructorzipper.py#L26 "Due to the Wikifunctions requirement that all functions be pure functions, (the ConstructorZipper) has been introduced in order to assist the manipulation of (semantic units)."] A similar class was introduced in Udiron for the manipulation of syntactic units. As a result, it should be possible ** ❌ to either return modified inputs cheaply, or [[:w:en:Zipper (data structure)|to create modified versions of persistent data structures cheaply]] and return those. <!-- <ref>Returning modified input is as cheap as every function call in Wikifunctions. If the modification is done through composition, using only builtin functions, it can become very cheap (in the order of some milliseconds).</ref> --> * ninai/base/interfaces.py: class ArgumentFilter(Protocol): ** Functions satisfying this protocol should produce semantic units (representing different kinds of meaning) as output. * ninai/base/argumentfilters.py: class ArgumentFilterOptions(NamedTuple): ** Since performance considerations <small>e.g. "any argument after the fourth is kept on the stack instead of moved into a register"</small> and various coding style guides discourage having large numbers of arguments when defining a function, this class exists to hold those when defining a new semantic unit. [https://gitlab.com/mahir256/ninai/-/blob/main/ninai/base/argumentfilters.py#L138 The members of that class are mostly assigned to other objects]. (See also the Wikifunctions requirement that all functions be pure functions.) As a result, it should be possible ** ❌ to cheaply handle large numbers of arguments provided to a function. * ninai/base/rendererarguments.py: class RendererArguments(NamedTuple): ** The desideratum in the previous sub-bullet point also applies here, although this object is passed around and manipulated versions returned across ''lots'' of different rendering steps (both in the base system and in user-defined functions), so it's worth repeating that it should be possible ** ❌ to '''''cheaply''''' handle large numbers of arguments provided to a function. * ninai/base/interfaces.py: class ArgumentFilterBasis(Protocol): ** This represents one of the arguments of an ArgumentFilterOptions: the function that produces a given type of semantic unit may be wholly tailored to that unit or simply be some other base function (like the [https://gitlab.com/mahir256/ninai/-/blob/main/ninai/base/argumentfilters.py#L23 "default"] and [https://gitlab.com/mahir256/ninai/-/blob/main/ninai/base/argumentfilters.py#L153 "passthrough"] functions). It is actually a partial function application that is stored and called when a semantic unit is provided arguments. As a result, it should be possible ** ❌ to store partial function calls in a semantic unit type-function mapping and use those. * ninai/base/constructormainrenderer.py: class ConstructorMainRenderer(NamedTuple): * ninai/base/constructorrenderer.py: class ConstructorRenderer(NamedTuple): * ninai/base/coreargumentprocessor.py: class CoreArgumentProcessor(NamedTuple): * ninai/base/coreargumentsrenderer.py: class CoreArgumentsRenderer(NamedTuple): * ninai/base/scopeargumentsrenderer.py: class ScopeArgumentsRenderer(NamedTuple): ** These classes encapsulate each of the steps that are actually run by the base Ninai system during semantic unit rendering, as described in [https://journals.sagepub.com/doi/full/10.3233/SW-243564 §5.1 of my paper]). As a result, it should be possible ** ❌ to run the functions defined by the base system for the rendering process without (in the case where all functions involved are written in Python) having to deal with overhead of serializing/deserializing objects at function call boundaries. * ninai/base/context.py: class ContextEntry(NamedTuple): * ninai/base/context.py: class Context(NamedTuple): ** [https://journals.sagepub.com/doi/full/10.3233/SW-243564 §4.1.2.: “Contexts” are lists representing where and how deep into a tree of Constructors a particular rendering step is occurring (effectively functioning like a stack trace).] As a result, it should be possible ** ❌ to expand and contract lists of tuples cheaply. * ninai/base/framing.py: class MethodKey(NamedTuple): * ninai/base/framing.py: class FramingKey(NamedTuple): ** These are used for indexing into Framings (see below), with the idea that the value returned from such an indexing is either a function or another Framing object entirely. * ninai/base/framing.py: class FramingDict(NamedTuple): * ninai/base/framing.py: class Framing(NamedTuple): ** [https://journals.sagepub.com/doi/full/10.3233/SW-243564 §4.1.2.: “Framings” hold information provided at the start of the Constructor rendering process to control the behavior of named individual Constructor types, named individual Constructors, individual languages, or some combination of all three.] ** The current implementation is largely inspired by the idea of [https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/Selectors CSS selectors]; the same sorts of symbols that denote certain features to select for (e.g. ".", "#", ":") may be used in a Framing selector as well. ** To satisfy Python type checkers, and to mitigate the inability to distinguish between e.g. "dict[str]" and "dict[int]" using a Python isinstance() check, keys into Framings (such as MethodKey and FramingKey listed above, along with EntityKey and StrKey from Udiron) distinguish between the possible types of the objects returned. Indexing into a Framing with an EntityKey will yield one of [https://gitlab.com/mahir256/udiron/-/blob/main/udiron/base/functionconfig.py#L158 several possible types] that ''can'' be distinguished by an isinstance() check; likewise with a StrKey yielding a string. As a result, it should be possible ** ❌ to check the types of values returned from arbitrary mappings cheaply. * ninai/base/interfaces.py: class PreHook(Protocol): * ninai/base/interfaces.py: class Renderer(Protocol): * ninai/base/interfaces.py: class PostHook(Protocol): * ninai/base/interfaces.py: class ArgPreHook(Protocol): * ninai/base/interfaces.py: class ArgPostHook(Protocol): ** Functions satisfying these protocols perform each of the steps of the semantic unit rendering process (as described in [https://journals.sagepub.com/doi/full/10.3233/SW-243564 §5.1 of my paper]). As a result, it should be possible ** ✅ to verify that a function in a particular (language, semantic unit type)-to-function mapping has the appropriate function signature.<ref>It is possible to [[Z21177|retrieve the signature of a function]].</ref> * ninai/base/interfaces.py: class SyntacticRoleFunction(Protocol): * ninai/base/interfaces.py: class InitialCatenaProcessor(Protocol): * ninai/base/interfaces.py: class ThematicInflectionAddition(Protocol): * ninai/base/interfaces.py: class InflectionFunction(Protocol): * ninai/base/interfaces.py: class ScopeOutputProcessor(Protocol): * ninai/base/interfaces.py: class ThematicRelationlessProcessor(Protocol): ** The notes in the previous sub-bullet point apply here too; functions matching these protocols perform steps of the process of rendering arbitrary predicates. * ninai/constructors/contexts/refcontext.py: class RefContextRenderer(NamedTuple): ** The notes in the sub-bullet point two before this one apply here as well. Given that this is created by a specific semantic unit's main renderer, rather than it being part of the base system (it does not live in the 'ninai/base' directory, after all), it should be possible ** ❌ to allow renderers to instantiate encapsulations of the state needed for their execution. * ninai/base/interfaces.py: class NinaiError(Exception): ** While this is not currently used much yet, it is intended to be saveable/serializable in the event the rendering process needs to be suspended (see "PausedRendererSupply" below), so that the specific source and cause of an error may be introspected. As a result, it should be possible ** ✅ to define arbitrary types of errors/exceptions to be thrown by code implementations.<ref>[[Wikifunctions:How_to_create_implementations#Wikifunctions_error_handling|User-defined errors]] exist on Wikifunctions, and function calls can throw them.</ref> * ninai/base/interfaces.py: class RenderingPhase(IntEnum): * ninai/base/interfaces.py: class CoreArgumentProcessingPhase(IntEnum): ** These enumerations were created to keep track of the current state of a type of process (and to indicate from where a suspended version of that process should resume from; see "PausedRendererSupply" below). As a result, it should be possible ** ❌ to keep track of the particular level of a rendering process being executed and to save that tracking information. * ninai/graph/__init__.py: class FallbackRunner: ** This is instantiated whenever a direct sense link cannot be found and starts the process of running fallback steps specified per language (see "SenseFindingFallback" ff. below). * ninai/graph/server.py: class GraphServer: * ninai/graph/server.py: class ServerThread(threading.Thread): * ninai/graph/server.py: class GraphServerRepl(cmd.Cmd): ** These classes serve as scaffolding for threads that handle remote procedure calls for (NetworkX, but also graph-tool in the past) graph traversals from a starting item/lexeme/sense and return the results of those traversals (https://elemwala-backend.toolforge.org merely runs such threads). While the specific Python implementation need not exist in the same fashion as written, it should still be possible ** ❌ to traverse the full graph of connections between Wikidata entities having certain property links (for instance, to go from one sense to another three "synonym" statements away, or to go from one lexeme to another three "etymology" statements away); the current functions which simply run "haswbstatement:P5137" full-text searches are not sufficient. * ninai/base/interfaces.py: class CandidatePathNode(TypedDict): # due to XMLRPC serialization, must remain a TypedDict ** This holds two things: (1) a particular entity ID (item/lexeme/sense), and (2) a list of two-item tuples representing the links between the source entity of a traversal and that particular entity ID. If L789-S1 was three "translation" links away from L123-S1, and a traversal is run with L123-S1 as the starting point, then the CandidatePathNode for L789-S1 would have as its second element a list of three two-item tuples (for each of the three links). As a result, it should be possible ** ❌ to return not only entities linked to a given entity, but the (shortest) path between a source entity and that given entity, as part of a traversal. * ninai/base/interfaces.py: class SenseRefinement(Protocol): ** Functions satisfying this Protocol filter a list of * ninai/graph/client.py: class CandidateProcessor: ** Functions satisfying this Protocol filter a list of * ninai/base/pausedrenderersupply.py: class PausedRendererSupply(NamedTuple): ** This class was added to assist in something Maria Keet had asked for once: if a particular grammatical feature is not known at a point in the rendering process, and there isn't a clear way to proceed without knowing it, this should cause the rendering process to be ''paused'' and the user should be allowed to ''supply'' the missing information to the ''renderer'' and resume that process. As a result, it should be possible ** ❌ to return some state representation, in the event of an error within rendering, that can be resumed with appropriate information provided. * ninai/base/interfaces.py: class PreHookOperator(NamedTuple): * ninai/base/interfaces.py: class MainRendererOperator(NamedTuple): * ninai/base/interfaces.py: class PostHookOperator(NamedTuple): ** These exist merely to define a [[:w:en:Tagged union]] of possible types of functions usable by Ninai during certain rendering steps (see the note for PreHook, Renderer, PostHook above). Following from the previous bullet point, if a particular step is not defined for a language-semantic unit type combination, this should cause the rendering process to be ''paused'' and the user should be allowed to ''supply'' the missing function to the ''renderer'' and resume that process. * ninai/base/interfaces.py: class CatenaYieldingIterator(Protocol): ** Iterator classes matching this protocol, which otherwise could be reduced to individual functions, exist for a couple of reasons: **# Because Wikifunctions is based on principles exemplified by Haskell (which is not an implementation language, which has proper tail call optimization, but which does not have 'for' loops), and because Ninai/Udiron is written in Python (which is an implementation language, which does not optimize tail calls<ref>https://neopythonic.blogspot.com/2009/04/tail-recursion-elimination.html</ref>, but which has 'for' loops), such iterators return, in addition to the object they generate, a new iterator starting from the point at which that object was generated. **# Generators (and thus iterators) are not automatically serializable (indeed, even more comprehensive Python libraries than pickle cannot do so<ref>https://pypi.org/project/dill/</ref>), so these objects manually implement Python's iterator protocol. ** As a result of both of these things, it should be possible ** ❌ to serialize and deserialize the current state of a given sense finding process. * ninai/graph/client.py: class SenseFindingIterator: ** This represents the main starting point of the sense finding process, and is serializable for the reasons above. * ninai/base/interfaces.py: class SenseFindingFallback(CatenaYieldingIterator, Protocol): * ninai/graph/calque.py: class CalqueIterator: # finding equivalents for parts of a complex lexeme in a source language, and reassembling the equivalents in a target language * ninai/graph/calque.py: class VerboNominalSyntagmaCalque: # in the situation where a verb consists of e.g. (a noun) + "to do" * ninai/graph/calque.py: class EndocentricCompoundCalque: # in the situation where a noun consists of two other nouns, or an adjective attached to a noun * ninai/graph/calque.py: class DerivationCalque: # in the situation where a lexeme consists of another lexeme with a derivational affix * ninai/graph/fallbacks.py: class CatenaZipperListIterator: # returning choices from only a specific list of lexemes * ninai/graph/cognate.py: class CognateIterator: # returning lexemes in a target language that, via "derived from lexeme" statements, are etymologically related to a lexeme in a source language * ninai/graph/transcribe.py: class TranscribeIterator: # returning pseudo-lexemes that consist of another lexeme in a source language with its (phonetic/orthographic) representation converted to a target language * ninai/graph/__init__.py: class CatenaFromItemIdIterator: # simply produces a pseudo-lexeme whose lemma is the item label ** In addition to the notes about "CatenaYieldingIterator" above, these iterators perform fallback steps of different kinds, mainly involving finding parts/equivalents of other lexemes outside the target language. * ninai/base/interfaces.py: class Constructorify(Protocol): # not used yet, but will be reintroduced soon * ninai/base/interfaces.py: class Transcribe(Protocol): # actually performs the conversion of a (phonetic/orthographic) representation into a target language * ninai/base/interfaces.py: class BinominalCompoundCalque(Protocol): # actually reassembles the equivalents of two nouns (or an adjective and a noun) * ninai/base/interfaces.py: class DerivationalCalqueFunction(Protocol): # actually reassembles the equivalents of a lexeme and an attached affix ** Functions satisfying these protocols perform the steps in the target language of assembling a candidate word or phrase from any found equivalents. * ninai/renderers/mul.py: class FinalPunctuationFunction(Protocol): ** This simply represents a function that adds some punctuation to a phrase/clause. === Type aliases === (May be initially incomplete, since not all type aliases may have been marked with the "TypeAlias" type annotation. * ninai/base/constructorrenderer.py:RenderingPhaseEncapsulator: "TypeAlias" = Union[ConstructorMainRenderer, CoreArgumentsRenderer, ScopeArgumentsRenderer] ** ... * ninai/base/interfaces.py:ChildIdentifiersMapping: "TypeAlias" = Dict[str, Tuple[Tuple[str, ...], str]] ** ... * ninai/base/interfaces.py:CoreArguments: "TypeAlias" = Dict[str, "Constructor"] ** ... * ninai/base/interfaces.py:ScopeArguments: "TypeAlias" = List["Constructor"] ** ... * ninai/base/interfaces.py:ThematicRelationSpec: "TypeAlias" = Dict[str, Statement] ** ... * ninai/base/interfaces.py:NonConstructorTypeArguments: "TypeAlias" = Union[ ** ... * ninai/base/interfaces.py:ConstructorArgument: "TypeAlias" = Union["Constructor", NonConstructorTypeArguments] ** ... * ninai/base/interfaces.py:ConstructorArguments: "TypeAlias" = Sequence[ConstructorArgument] ** ... * ninai/graph/server.py:EntityGraph: TypeAlias = "nx.MultiDiGraph[str]" ** ... === Other objects === Some rough equivalents for the types named in the annotations below: * Dict = [[Z883]] * Set = (no equivalent, maybe [[Z883]] with [[Z1]] keys and [[Z41]] as the only value?) * List = [[Z881]] * Language = [[Z60]] (May be initially incomplete, since this is basically a list of entities not falling into any of the above types.) * ninai/base/constructorinterfaces.py:__constructor_argument_filters__: Dict[str, "ArgumentFilter"] = {} ** ... * ninai/base/constructorinterfaces.py:__constructor_core_arguments__: Dict[str, List[str]] = {} ** ... * ninai/base/constructorinterfaces.py:__constructor_docstrings__: Dict[str, str] = {} ** ... * ninai/base/constructorinterfaces.py:__constructor_type_hierarchy__: Dict[str, List[str]] = {} ** ... * ninai/base/constructorinterfaces.py:__config_insulators__: Set[str] = set() ** ... * ninai/base/constructorinterfaces.py:__config_setters__: Set[str] = set() ** ... * ninai/base/constructorinterfaces.py:__unfiltered_framing_constructors__: Set[str] = set() ** ... * ninai/graph/__init__.py:__fallback_chains__: DefaultDict[Language, DefaultDict[str, List[str]]] = defaultdict(lambda: defaultdict(list)) ** ... * ninai/graph/__init__.py:__fallback_chain_types__: Dict[str, Type[i.SenseFindingFallback]] = {...} ** ... * ninai/graph/client.py:__language_range__: Dict[Language, Tuple[tfsli.Qid, ...]] = {} ** ... * ninai/renderers/__mappings__.py:__arg_pre_hooks__: DefaultDict[str, DefaultDict[str, Dict["Language", "ArgPreHook"]]] = defaultdict(lambda: defaultdict(dict)) ** ... * ninai/renderers/__mappings__.py:__arg_post_hooks__: DefaultDict[str, DefaultDict[str, Dict["Language", "ArgPostHook"]]] = defaultdict(lambda: defaultdict(dict)) ** ... * ninai/renderers/__mappings__.py:__pre_hooks__: DefaultDict[str, Dict["Language", "PreHook"]] = defaultdict(dict) ** ... * ninai/renderers/__mappings__.py:__post_hooks__: DefaultDict[str, Dict["Language", "PostHook"]] = defaultdict(dict) ** ... * ninai/renderers/__mappings__.py:__renderers__: DefaultDict[str, Dict["Language", "Renderer"]] = defaultdict(dict) ** ... * ninai/renderers/__mappings__.py:__syntactic_role_functions__: DefaultDict[str, Dict["Language", "SyntacticRoleFunction"]] = defaultdict(dict) ** ... * ninai/renderers/__mappings__.py:__sense_refines__: Dict["Language", "SenseRefinement"] = {} ** ... * ninai/renderers/__mappings__.py:__initial_catena_processors__: Dict["Language", "InitialCatenaProcessor"] = {} ** ... * ninai/renderers/__mappings__.py:__thematic_inflection_additions__: Dict["Language", "ThematicInflectionAddition"] = {} ** ... * ninai/renderers/__mappings__.py:__inflection_functions__: Dict["Language", "InflectionFunction"] = {} ** ... * ninai/renderers/__mappings__.py:__scope_output_processors__: Dict["Language", "ScopeOutputProcessor"] = {} ** ... * ninai/renderers/__mappings__.py:__thematic_relationless_processors__: Dict["Language", "ThematicRelationlessProcessor"] = {} ** ... * ninai/renderers/__mappings__.py:__constructorifies__: Dict["Language", "Constructorify"] = {} ** ... * ninai/renderers/__mappings__.py:__transcribes__: Dict["Language", "Transcribe"] = {} ** ... * ninai/renderers/__mappings__.py:__binominal_calques__: Dict["Language", "BinominalCompoundCalque"] = {} ** ... * ninai/renderers/__mappings__.py:__derivation_calques__: Dict["Language", "DerivationalCalqueFunction"] = {} ** ... * ninai/renderers/mul.py:__full_stop_overrides__: Dict[Language, FinalPunctuationFunction] = {} ** ... <references/> == Missing Wikifunctions features for this type == @[[User:Mahir256|Mahir256]] What are the currently missing features of Wikifunctions that are necessary to actually implement this type? Which of these are fundamental, and which are just useful to port the code directly from Ninai? It could be useful to have them all listed in one place. [[User:Dv103|Dv103]] ([[User talk:Dv103|talk]]) 17:36, 16 June 2026 (UTC) *{{re|Dv103|Denny|DVrandecic (WMF)}} I have started assembling those above, where explanations are given for different classes' existence, and particular desiderata for implementation are given with a ❌ (any of which you're welcome to change to a ✅ if there is evidence that the thing described is possible). I leave it to you to decide which are 'fundamental' versus 'just useful'. [[User:Mahir256|Mahir256]] ([[User talk:Mahir256|talk]]) 22:58, 22 June 2026 (UTC) *:A thing about sets: what is the issue in using {{Z|Z881}} to encode them? Wikifunctions already contains lists that are treated as sets. We already have functions to treat typed list as if they were sets (i.e., ignoring the order). Also consider that, under the hood, {{Z|Z883}} is just a wrapper for a {{Z|Z881}} of {{Z|Z882}}. [[User:Dv103|Dv103]] ([[User talk:Dv103|talk]]) 07:54, 23 June 2026 (UTC) n8sc9xs60xl13mtpebryk7682ycmy3p 285907 285890 2026-06-23T11:47:53Z Dv103 11127 /* Classes */ 285907 wikitext text/x-wiki == Other possible types and objects == The following are lists of other entities defined in Ninai for the handling of Constructors. They were first assembled with the outputs of various <code>git grep</code> commands on the [https://gitlab.com/mahir256/ninai/ Ninai repository], and notes are provided below each about the nature of that declaration. Equivalents of many of these will be necessary, but levels of requirement will be marked as the notes below are filled in. === Classes === * ninai/base/constructor.py: class Constructor(NamedTuple): ** The "semantic unit" type is intended to be equivalent to this class. * ninai/base/constructorzipper.py: class ArgumentLevel(NamedTuple): * ninai/base/constructorzipper.py: class ConstructorZipper(NamedTuple): ** [https://gitlab.com/mahir256/ninai/-/blob/main/ninai/base/constructorzipper.py#L26 "Due to the Wikifunctions requirement that all functions be pure functions, (the ConstructorZipper) has been introduced in order to assist the manipulation of (semantic units)."] A similar class was introduced in Udiron for the manipulation of syntactic units. As a result, it should be possible ** ❓ to either return modified inputs cheaply, or [[:w:en:Zipper (data structure)|to create modified versions of persistent data structures cheaply]] and return those. <ref>Returning modified input is as cheap as every function call in Wikifunctions. If the modification is done through composition, using only builtin functions, it can become very cheap (in the order of some milliseconds). This is because in Wikifunctions, object are "immutable" in the sense that they are always copied when passed to functions, and the functions always return another copy. A function that returns a slightly modified version of the input is no different from a function that returns a completely different value. For the zipper, if necessary, a list could be used.</ref> * ninai/base/interfaces.py: class ArgumentFilter(Protocol): ** Functions satisfying this protocol should produce semantic units (representing different kinds of meaning) as output. * ninai/base/argumentfilters.py: class ArgumentFilterOptions(NamedTuple): ** Since performance considerations <small>e.g. "any argument after the fourth is kept on the stack instead of moved into a register"</small> and various coding style guides discourage having large numbers of arguments when defining a function, this class exists to hold those when defining a new semantic unit. [https://gitlab.com/mahir256/ninai/-/blob/main/ninai/base/argumentfilters.py#L138 The members of that class are mostly assigned to other objects]. (See also the Wikifunctions requirement that all functions be pure functions.) As a result, it should be possible ** ❌ to cheaply handle large numbers of arguments provided to a function. * ninai/base/rendererarguments.py: class RendererArguments(NamedTuple): ** The desideratum in the previous sub-bullet point also applies here, although this object is passed around and manipulated versions returned across ''lots'' of different rendering steps (both in the base system and in user-defined functions), so it's worth repeating that it should be possible ** ❌ to '''''cheaply''''' handle large numbers of arguments provided to a function. * ninai/base/interfaces.py: class ArgumentFilterBasis(Protocol): ** This represents one of the arguments of an ArgumentFilterOptions: the function that produces a given type of semantic unit may be wholly tailored to that unit or simply be some other base function (like the [https://gitlab.com/mahir256/ninai/-/blob/main/ninai/base/argumentfilters.py#L23 "default"] and [https://gitlab.com/mahir256/ninai/-/blob/main/ninai/base/argumentfilters.py#L153 "passthrough"] functions). It is actually a partial function application that is stored and called when a semantic unit is provided arguments. As a result, it should be possible ** ❌ to store partial function calls in a semantic unit type-function mapping and use those. * ninai/base/constructormainrenderer.py: class ConstructorMainRenderer(NamedTuple): * ninai/base/constructorrenderer.py: class ConstructorRenderer(NamedTuple): * ninai/base/coreargumentprocessor.py: class CoreArgumentProcessor(NamedTuple): * ninai/base/coreargumentsrenderer.py: class CoreArgumentsRenderer(NamedTuple): * ninai/base/scopeargumentsrenderer.py: class ScopeArgumentsRenderer(NamedTuple): ** These classes encapsulate each of the steps that are actually run by the base Ninai system during semantic unit rendering, as described in [https://journals.sagepub.com/doi/full/10.3233/SW-243564 §5.1 of my paper]). As a result, it should be possible ** ❌ to run the functions defined by the base system for the rendering process without (in the case where all functions involved are written in Python) having to deal with overhead of serializing/deserializing objects at function call boundaries. * ninai/base/context.py: class ContextEntry(NamedTuple): * ninai/base/context.py: class Context(NamedTuple): ** [https://journals.sagepub.com/doi/full/10.3233/SW-243564 §4.1.2.: “Contexts” are lists representing where and how deep into a tree of Constructors a particular rendering step is occurring (effectively functioning like a stack trace).] As a result, it should be possible ** ❌ to expand and contract lists of tuples cheaply. * ninai/base/framing.py: class MethodKey(NamedTuple): * ninai/base/framing.py: class FramingKey(NamedTuple): ** These are used for indexing into Framings (see below), with the idea that the value returned from such an indexing is either a function or another Framing object entirely. * ninai/base/framing.py: class FramingDict(NamedTuple): * ninai/base/framing.py: class Framing(NamedTuple): ** [https://journals.sagepub.com/doi/full/10.3233/SW-243564 §4.1.2.: “Framings” hold information provided at the start of the Constructor rendering process to control the behavior of named individual Constructor types, named individual Constructors, individual languages, or some combination of all three.] ** The current implementation is largely inspired by the idea of [https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/Selectors CSS selectors]; the same sorts of symbols that denote certain features to select for (e.g. ".", "#", ":") may be used in a Framing selector as well. ** To satisfy Python type checkers, and to mitigate the inability to distinguish between e.g. "dict[str]" and "dict[int]" using a Python isinstance() check, keys into Framings (such as MethodKey and FramingKey listed above, along with EntityKey and StrKey from Udiron) distinguish between the possible types of the objects returned. Indexing into a Framing with an EntityKey will yield one of [https://gitlab.com/mahir256/udiron/-/blob/main/udiron/base/functionconfig.py#L158 several possible types] that ''can'' be distinguished by an isinstance() check; likewise with a StrKey yielding a string. As a result, it should be possible ** ❌ to check the types of values returned from arbitrary mappings cheaply. * ninai/base/interfaces.py: class PreHook(Protocol): * ninai/base/interfaces.py: class Renderer(Protocol): * ninai/base/interfaces.py: class PostHook(Protocol): * ninai/base/interfaces.py: class ArgPreHook(Protocol): * ninai/base/interfaces.py: class ArgPostHook(Protocol): ** Functions satisfying these protocols perform each of the steps of the semantic unit rendering process (as described in [https://journals.sagepub.com/doi/full/10.3233/SW-243564 §5.1 of my paper]). As a result, it should be possible ** ✅ to verify that a function in a particular (language, semantic unit type)-to-function mapping has the appropriate function signature.<ref>It is possible to [[Z21177|retrieve the signature of a function]].</ref> * ninai/base/interfaces.py: class SyntacticRoleFunction(Protocol): * ninai/base/interfaces.py: class InitialCatenaProcessor(Protocol): * ninai/base/interfaces.py: class ThematicInflectionAddition(Protocol): * ninai/base/interfaces.py: class InflectionFunction(Protocol): * ninai/base/interfaces.py: class ScopeOutputProcessor(Protocol): * ninai/base/interfaces.py: class ThematicRelationlessProcessor(Protocol): ** The notes in the previous sub-bullet point apply here too; functions matching these protocols perform steps of the process of rendering arbitrary predicates. * ninai/constructors/contexts/refcontext.py: class RefContextRenderer(NamedTuple): ** The notes in the sub-bullet point two before this one apply here as well. Given that this is created by a specific semantic unit's main renderer, rather than it being part of the base system (it does not live in the 'ninai/base' directory, after all), it should be possible ** ❌ to allow renderers to instantiate encapsulations of the state needed for their execution. * ninai/base/interfaces.py: class NinaiError(Exception): ** While this is not currently used much yet, it is intended to be saveable/serializable in the event the rendering process needs to be suspended (see "PausedRendererSupply" below), so that the specific source and cause of an error may be introspected. As a result, it should be possible ** ✅ to define arbitrary types of errors/exceptions to be thrown by code implementations.<ref>[[Wikifunctions:How_to_create_implementations#Wikifunctions_error_handling|User-defined errors]] exist on Wikifunctions, and function calls can throw them.</ref> * ninai/base/interfaces.py: class RenderingPhase(IntEnum): * ninai/base/interfaces.py: class CoreArgumentProcessingPhase(IntEnum): ** These enumerations were created to keep track of the current state of a type of process (and to indicate from where a suspended version of that process should resume from; see "PausedRendererSupply" below). As a result, it should be possible ** ❌ to keep track of the particular level of a rendering process being executed and to save that tracking information. * ninai/graph/__init__.py: class FallbackRunner: ** This is instantiated whenever a direct sense link cannot be found and starts the process of running fallback steps specified per language (see "SenseFindingFallback" ff. below). * ninai/graph/server.py: class GraphServer: * ninai/graph/server.py: class ServerThread(threading.Thread): * ninai/graph/server.py: class GraphServerRepl(cmd.Cmd): ** These classes serve as scaffolding for threads that handle remote procedure calls for (NetworkX, but also graph-tool in the past) graph traversals from a starting item/lexeme/sense and return the results of those traversals (https://elemwala-backend.toolforge.org merely runs such threads). While the specific Python implementation need not exist in the same fashion as written, it should still be possible ** ❌ to traverse the full graph of connections between Wikidata entities having certain property links (for instance, to go from one sense to another three "synonym" statements away, or to go from one lexeme to another three "etymology" statements away); the current functions which simply run "haswbstatement:P5137" full-text searches are not sufficient. * ninai/base/interfaces.py: class CandidatePathNode(TypedDict): # due to XMLRPC serialization, must remain a TypedDict ** This holds two things: (1) a particular entity ID (item/lexeme/sense), and (2) a list of two-item tuples representing the links between the source entity of a traversal and that particular entity ID. If L789-S1 was three "translation" links away from L123-S1, and a traversal is run with L123-S1 as the starting point, then the CandidatePathNode for L789-S1 would have as its second element a list of three two-item tuples (for each of the three links). As a result, it should be possible ** ❌ to return not only entities linked to a given entity, but the (shortest) path between a source entity and that given entity, as part of a traversal. * ninai/base/interfaces.py: class SenseRefinement(Protocol): ** Functions satisfying this Protocol filter a list of * ninai/graph/client.py: class CandidateProcessor: ** Functions satisfying this Protocol filter a list of * ninai/base/pausedrenderersupply.py: class PausedRendererSupply(NamedTuple): ** This class was added to assist in something Maria Keet had asked for once: if a particular grammatical feature is not known at a point in the rendering process, and there isn't a clear way to proceed without knowing it, this should cause the rendering process to be ''paused'' and the user should be allowed to ''supply'' the missing information to the ''renderer'' and resume that process. As a result, it should be possible ** ❌ to return some state representation, in the event of an error within rendering, that can be resumed with appropriate information provided. * ninai/base/interfaces.py: class PreHookOperator(NamedTuple): * ninai/base/interfaces.py: class MainRendererOperator(NamedTuple): * ninai/base/interfaces.py: class PostHookOperator(NamedTuple): ** These exist merely to define a [[:w:en:Tagged union]] of possible types of functions usable by Ninai during certain rendering steps (see the note for PreHook, Renderer, PostHook above). Following from the previous bullet point, if a particular step is not defined for a language-semantic unit type combination, this should cause the rendering process to be ''paused'' and the user should be allowed to ''supply'' the missing function to the ''renderer'' and resume that process. * ninai/base/interfaces.py: class CatenaYieldingIterator(Protocol): ** Iterator classes matching this protocol, which otherwise could be reduced to individual functions, exist for a couple of reasons: **# Because Wikifunctions is based on principles exemplified by Haskell (which is not an implementation language, which has proper tail call optimization, but which does not have 'for' loops), and because Ninai/Udiron is written in Python (which is an implementation language, which does not optimize tail calls<ref>https://neopythonic.blogspot.com/2009/04/tail-recursion-elimination.html</ref>, but which has 'for' loops), such iterators return, in addition to the object they generate, a new iterator starting from the point at which that object was generated. **# Generators (and thus iterators) are not automatically serializable (indeed, even more comprehensive Python libraries than pickle cannot do so<ref>https://pypi.org/project/dill/</ref>), so these objects manually implement Python's iterator protocol. ** As a result of both of these things, it should be possible ** ❌ to serialize and deserialize the current state of a given sense finding process. * ninai/graph/client.py: class SenseFindingIterator: ** This represents the main starting point of the sense finding process, and is serializable for the reasons above. * ninai/base/interfaces.py: class SenseFindingFallback(CatenaYieldingIterator, Protocol): * ninai/graph/calque.py: class CalqueIterator: # finding equivalents for parts of a complex lexeme in a source language, and reassembling the equivalents in a target language * ninai/graph/calque.py: class VerboNominalSyntagmaCalque: # in the situation where a verb consists of e.g. (a noun) + "to do" * ninai/graph/calque.py: class EndocentricCompoundCalque: # in the situation where a noun consists of two other nouns, or an adjective attached to a noun * ninai/graph/calque.py: class DerivationCalque: # in the situation where a lexeme consists of another lexeme with a derivational affix * ninai/graph/fallbacks.py: class CatenaZipperListIterator: # returning choices from only a specific list of lexemes * ninai/graph/cognate.py: class CognateIterator: # returning lexemes in a target language that, via "derived from lexeme" statements, are etymologically related to a lexeme in a source language * ninai/graph/transcribe.py: class TranscribeIterator: # returning pseudo-lexemes that consist of another lexeme in a source language with its (phonetic/orthographic) representation converted to a target language * ninai/graph/__init__.py: class CatenaFromItemIdIterator: # simply produces a pseudo-lexeme whose lemma is the item label ** In addition to the notes about "CatenaYieldingIterator" above, these iterators perform fallback steps of different kinds, mainly involving finding parts/equivalents of other lexemes outside the target language. * ninai/base/interfaces.py: class Constructorify(Protocol): # not used yet, but will be reintroduced soon * ninai/base/interfaces.py: class Transcribe(Protocol): # actually performs the conversion of a (phonetic/orthographic) representation into a target language * ninai/base/interfaces.py: class BinominalCompoundCalque(Protocol): # actually reassembles the equivalents of two nouns (or an adjective and a noun) * ninai/base/interfaces.py: class DerivationalCalqueFunction(Protocol): # actually reassembles the equivalents of a lexeme and an attached affix ** Functions satisfying these protocols perform the steps in the target language of assembling a candidate word or phrase from any found equivalents. * ninai/renderers/mul.py: class FinalPunctuationFunction(Protocol): ** This simply represents a function that adds some punctuation to a phrase/clause. === Type aliases === (May be initially incomplete, since not all type aliases may have been marked with the "TypeAlias" type annotation. * ninai/base/constructorrenderer.py:RenderingPhaseEncapsulator: "TypeAlias" = Union[ConstructorMainRenderer, CoreArgumentsRenderer, ScopeArgumentsRenderer] ** ... * ninai/base/interfaces.py:ChildIdentifiersMapping: "TypeAlias" = Dict[str, Tuple[Tuple[str, ...], str]] ** ... * ninai/base/interfaces.py:CoreArguments: "TypeAlias" = Dict[str, "Constructor"] ** ... * ninai/base/interfaces.py:ScopeArguments: "TypeAlias" = List["Constructor"] ** ... * ninai/base/interfaces.py:ThematicRelationSpec: "TypeAlias" = Dict[str, Statement] ** ... * ninai/base/interfaces.py:NonConstructorTypeArguments: "TypeAlias" = Union[ ** ... * ninai/base/interfaces.py:ConstructorArgument: "TypeAlias" = Union["Constructor", NonConstructorTypeArguments] ** ... * ninai/base/interfaces.py:ConstructorArguments: "TypeAlias" = Sequence[ConstructorArgument] ** ... * ninai/graph/server.py:EntityGraph: TypeAlias = "nx.MultiDiGraph[str]" ** ... === Other objects === Some rough equivalents for the types named in the annotations below: * Dict = [[Z883]] * Set = (no equivalent, maybe [[Z883]] with [[Z1]] keys and [[Z41]] as the only value?) * List = [[Z881]] * Language = [[Z60]] (May be initially incomplete, since this is basically a list of entities not falling into any of the above types.) * ninai/base/constructorinterfaces.py:__constructor_argument_filters__: Dict[str, "ArgumentFilter"] = {} ** ... * ninai/base/constructorinterfaces.py:__constructor_core_arguments__: Dict[str, List[str]] = {} ** ... * ninai/base/constructorinterfaces.py:__constructor_docstrings__: Dict[str, str] = {} ** ... * ninai/base/constructorinterfaces.py:__constructor_type_hierarchy__: Dict[str, List[str]] = {} ** ... * ninai/base/constructorinterfaces.py:__config_insulators__: Set[str] = set() ** ... * ninai/base/constructorinterfaces.py:__config_setters__: Set[str] = set() ** ... * ninai/base/constructorinterfaces.py:__unfiltered_framing_constructors__: Set[str] = set() ** ... * ninai/graph/__init__.py:__fallback_chains__: DefaultDict[Language, DefaultDict[str, List[str]]] = defaultdict(lambda: defaultdict(list)) ** ... * ninai/graph/__init__.py:__fallback_chain_types__: Dict[str, Type[i.SenseFindingFallback]] = {...} ** ... * ninai/graph/client.py:__language_range__: Dict[Language, Tuple[tfsli.Qid, ...]] = {} ** ... * ninai/renderers/__mappings__.py:__arg_pre_hooks__: DefaultDict[str, DefaultDict[str, Dict["Language", "ArgPreHook"]]] = defaultdict(lambda: defaultdict(dict)) ** ... * ninai/renderers/__mappings__.py:__arg_post_hooks__: DefaultDict[str, DefaultDict[str, Dict["Language", "ArgPostHook"]]] = defaultdict(lambda: defaultdict(dict)) ** ... * ninai/renderers/__mappings__.py:__pre_hooks__: DefaultDict[str, Dict["Language", "PreHook"]] = defaultdict(dict) ** ... * ninai/renderers/__mappings__.py:__post_hooks__: DefaultDict[str, Dict["Language", "PostHook"]] = defaultdict(dict) ** ... * ninai/renderers/__mappings__.py:__renderers__: DefaultDict[str, Dict["Language", "Renderer"]] = defaultdict(dict) ** ... * ninai/renderers/__mappings__.py:__syntactic_role_functions__: DefaultDict[str, Dict["Language", "SyntacticRoleFunction"]] = defaultdict(dict) ** ... * ninai/renderers/__mappings__.py:__sense_refines__: Dict["Language", "SenseRefinement"] = {} ** ... * ninai/renderers/__mappings__.py:__initial_catena_processors__: Dict["Language", "InitialCatenaProcessor"] = {} ** ... * ninai/renderers/__mappings__.py:__thematic_inflection_additions__: Dict["Language", "ThematicInflectionAddition"] = {} ** ... * ninai/renderers/__mappings__.py:__inflection_functions__: Dict["Language", "InflectionFunction"] = {} ** ... * ninai/renderers/__mappings__.py:__scope_output_processors__: Dict["Language", "ScopeOutputProcessor"] = {} ** ... * ninai/renderers/__mappings__.py:__thematic_relationless_processors__: Dict["Language", "ThematicRelationlessProcessor"] = {} ** ... * ninai/renderers/__mappings__.py:__constructorifies__: Dict["Language", "Constructorify"] = {} ** ... * ninai/renderers/__mappings__.py:__transcribes__: Dict["Language", "Transcribe"] = {} ** ... * ninai/renderers/__mappings__.py:__binominal_calques__: Dict["Language", "BinominalCompoundCalque"] = {} ** ... * ninai/renderers/__mappings__.py:__derivation_calques__: Dict["Language", "DerivationalCalqueFunction"] = {} ** ... * ninai/renderers/mul.py:__full_stop_overrides__: Dict[Language, FinalPunctuationFunction] = {} ** ... <references/> == Missing Wikifunctions features for this type == @[[User:Mahir256|Mahir256]] What are the currently missing features of Wikifunctions that are necessary to actually implement this type? Which of these are fundamental, and which are just useful to port the code directly from Ninai? It could be useful to have them all listed in one place. [[User:Dv103|Dv103]] ([[User talk:Dv103|talk]]) 17:36, 16 June 2026 (UTC) *{{re|Dv103|Denny|DVrandecic (WMF)}} I have started assembling those above, where explanations are given for different classes' existence, and particular desiderata for implementation are given with a ❌ (any of which you're welcome to change to a ✅ if there is evidence that the thing described is possible). I leave it to you to decide which are 'fundamental' versus 'just useful'. [[User:Mahir256|Mahir256]] ([[User talk:Mahir256|talk]]) 22:58, 22 June 2026 (UTC) *:A thing about sets: what is the issue in using {{Z|Z881}} to encode them? Wikifunctions already contains lists that are treated as sets. We already have functions to treat typed list as if they were sets (i.e., ignoring the order). Also consider that, under the hood, {{Z|Z883}} is just a wrapper for a {{Z|Z881}} of {{Z|Z882}}. [[User:Dv103|Dv103]] ([[User talk:Dv103|talk]]) 07:54, 23 June 2026 (UTC) 0qyegei9gu2zsne6uqqlgl70prxjp7x 285908 285907 2026-06-23T11:54:43Z Dv103 11127 /* Classes */ 285908 wikitext text/x-wiki == Other possible types and objects == The following are lists of other entities defined in Ninai for the handling of Constructors. They were first assembled with the outputs of various <code>git grep</code> commands on the [https://gitlab.com/mahir256/ninai/ Ninai repository], and notes are provided below each about the nature of that declaration. Equivalents of many of these will be necessary, but levels of requirement will be marked as the notes below are filled in. === Classes === * ninai/base/constructor.py: class Constructor(NamedTuple): ** The "semantic unit" type is intended to be equivalent to this class. * ninai/base/constructorzipper.py: class ArgumentLevel(NamedTuple): * ninai/base/constructorzipper.py: class ConstructorZipper(NamedTuple): ** [https://gitlab.com/mahir256/ninai/-/blob/main/ninai/base/constructorzipper.py#L26 "Due to the Wikifunctions requirement that all functions be pure functions, (the ConstructorZipper) has been introduced in order to assist the manipulation of (semantic units)."] A similar class was introduced in Udiron for the manipulation of syntactic units. As a result, it should be possible ** ❓ to either return modified inputs cheaply, or [[:w:en:Zipper (data structure)|to create modified versions of persistent data structures cheaply]] and return those. <ref>Returning modified input is as cheap as every function call in Wikifunctions. If the modification is done through composition, using only builtin functions, it can become very cheap (in the order of some milliseconds). This is because in Wikifunctions, object are "immutable" in the sense that they are always copied when passed to functions, and the functions always return another copy. A function that returns a slightly modified version of the input is no different from a function that returns a completely different value. For the zipper, if necessary, a list could be used.</ref> * ninai/base/interfaces.py: class ArgumentFilter(Protocol): ** Functions satisfying this protocol should produce semantic units (representing different kinds of meaning) as output. * ninai/base/argumentfilters.py: class ArgumentFilterOptions(NamedTuple): ** Since performance considerations <small>e.g. "any argument after the fourth is kept on the stack instead of moved into a register"</small> and various coding style guides discourage having large numbers of arguments when defining a function, this class exists to hold those when defining a new semantic unit. [https://gitlab.com/mahir256/ninai/-/blob/main/ninai/base/argumentfilters.py#L138 The members of that class are mostly assigned to other objects]. (See also the Wikifunctions requirement that all functions be pure functions.) As a result, it should be possible ** ✅ to cheaply handle large numbers of arguments provided to a function.<ref>Wikifunctions already has [[Z23619|functions with a high number of arguments]], and there are no particular issues with them.</ref> * ninai/base/rendererarguments.py: class RendererArguments(NamedTuple): ** The desideratum in the previous sub-bullet point also applies here, although this object is passed around and manipulated versions returned across ''lots'' of different rendering steps (both in the base system and in user-defined functions), so it's worth repeating that it should be possible ** ❌ to '''''cheaply''''' handle large numbers of arguments provided to a function. * ninai/base/interfaces.py: class ArgumentFilterBasis(Protocol): ** This represents one of the arguments of an ArgumentFilterOptions: the function that produces a given type of semantic unit may be wholly tailored to that unit or simply be some other base function (like the [https://gitlab.com/mahir256/ninai/-/blob/main/ninai/base/argumentfilters.py#L23 "default"] and [https://gitlab.com/mahir256/ninai/-/blob/main/ninai/base/argumentfilters.py#L153 "passthrough"] functions). It is actually a partial function application that is stored and called when a semantic unit is provided arguments. As a result, it should be possible ** ❌ to store partial function calls in a semantic unit type-function mapping and use those. * ninai/base/constructormainrenderer.py: class ConstructorMainRenderer(NamedTuple): * ninai/base/constructorrenderer.py: class ConstructorRenderer(NamedTuple): * ninai/base/coreargumentprocessor.py: class CoreArgumentProcessor(NamedTuple): * ninai/base/coreargumentsrenderer.py: class CoreArgumentsRenderer(NamedTuple): * ninai/base/scopeargumentsrenderer.py: class ScopeArgumentsRenderer(NamedTuple): ** These classes encapsulate each of the steps that are actually run by the base Ninai system during semantic unit rendering, as described in [https://journals.sagepub.com/doi/full/10.3233/SW-243564 §5.1 of my paper]). As a result, it should be possible ** ❌ to run the functions defined by the base system for the rendering process without (in the case where all functions involved are written in Python) having to deal with overhead of serializing/deserializing objects at function call boundaries. * ninai/base/context.py: class ContextEntry(NamedTuple): * ninai/base/context.py: class Context(NamedTuple): ** [https://journals.sagepub.com/doi/full/10.3233/SW-243564 §4.1.2.: “Contexts” are lists representing where and how deep into a tree of Constructors a particular rendering step is occurring (effectively functioning like a stack trace).] As a result, it should be possible ** ❌ to expand and contract lists of tuples cheaply. * ninai/base/framing.py: class MethodKey(NamedTuple): * ninai/base/framing.py: class FramingKey(NamedTuple): ** These are used for indexing into Framings (see below), with the idea that the value returned from such an indexing is either a function or another Framing object entirely. * ninai/base/framing.py: class FramingDict(NamedTuple): * ninai/base/framing.py: class Framing(NamedTuple): ** [https://journals.sagepub.com/doi/full/10.3233/SW-243564 §4.1.2.: “Framings” hold information provided at the start of the Constructor rendering process to control the behavior of named individual Constructor types, named individual Constructors, individual languages, or some combination of all three.] ** The current implementation is largely inspired by the idea of [https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/Selectors CSS selectors]; the same sorts of symbols that denote certain features to select for (e.g. ".", "#", ":") may be used in a Framing selector as well. ** To satisfy Python type checkers, and to mitigate the inability to distinguish between e.g. "dict[str]" and "dict[int]" using a Python isinstance() check, keys into Framings (such as MethodKey and FramingKey listed above, along with EntityKey and StrKey from Udiron) distinguish between the possible types of the objects returned. Indexing into a Framing with an EntityKey will yield one of [https://gitlab.com/mahir256/udiron/-/blob/main/udiron/base/functionconfig.py#L158 several possible types] that ''can'' be distinguished by an isinstance() check; likewise with a StrKey yielding a string. As a result, it should be possible ** ❌ to check the types of values returned from arbitrary mappings cheaply. * ninai/base/interfaces.py: class PreHook(Protocol): * ninai/base/interfaces.py: class Renderer(Protocol): * ninai/base/interfaces.py: class PostHook(Protocol): * ninai/base/interfaces.py: class ArgPreHook(Protocol): * ninai/base/interfaces.py: class ArgPostHook(Protocol): ** Functions satisfying these protocols perform each of the steps of the semantic unit rendering process (as described in [https://journals.sagepub.com/doi/full/10.3233/SW-243564 §5.1 of my paper]). As a result, it should be possible ** ✅ to verify that a function in a particular (language, semantic unit type)-to-function mapping has the appropriate function signature.<ref>It is possible to [[Z21177|retrieve the signature of a function]].</ref> * ninai/base/interfaces.py: class SyntacticRoleFunction(Protocol): * ninai/base/interfaces.py: class InitialCatenaProcessor(Protocol): * ninai/base/interfaces.py: class ThematicInflectionAddition(Protocol): * ninai/base/interfaces.py: class InflectionFunction(Protocol): * ninai/base/interfaces.py: class ScopeOutputProcessor(Protocol): * ninai/base/interfaces.py: class ThematicRelationlessProcessor(Protocol): ** The notes in the previous sub-bullet point apply here too; functions matching these protocols perform steps of the process of rendering arbitrary predicates. * ninai/constructors/contexts/refcontext.py: class RefContextRenderer(NamedTuple): ** The notes in the sub-bullet point two before this one apply here as well. Given that this is created by a specific semantic unit's main renderer, rather than it being part of the base system (it does not live in the 'ninai/base' directory, after all), it should be possible ** ❌ to allow renderers to instantiate encapsulations of the state needed for their execution. * ninai/base/interfaces.py: class NinaiError(Exception): ** While this is not currently used much yet, it is intended to be saveable/serializable in the event the rendering process needs to be suspended (see "PausedRendererSupply" below), so that the specific source and cause of an error may be introspected. As a result, it should be possible ** ✅ to define arbitrary types of errors/exceptions to be thrown by code implementations.<ref>[[Wikifunctions:How_to_create_implementations#Wikifunctions_error_handling|User-defined errors]] exist on Wikifunctions, and function calls can throw them.</ref> * ninai/base/interfaces.py: class RenderingPhase(IntEnum): * ninai/base/interfaces.py: class CoreArgumentProcessingPhase(IntEnum): ** These enumerations were created to keep track of the current state of a type of process (and to indicate from where a suspended version of that process should resume from; see "PausedRendererSupply" below). As a result, it should be possible ** ❌ to keep track of the particular level of a rendering process being executed and to save that tracking information. * ninai/graph/__init__.py: class FallbackRunner: ** This is instantiated whenever a direct sense link cannot be found and starts the process of running fallback steps specified per language (see "SenseFindingFallback" ff. below). * ninai/graph/server.py: class GraphServer: * ninai/graph/server.py: class ServerThread(threading.Thread): * ninai/graph/server.py: class GraphServerRepl(cmd.Cmd): ** These classes serve as scaffolding for threads that handle remote procedure calls for (NetworkX, but also graph-tool in the past) graph traversals from a starting item/lexeme/sense and return the results of those traversals (https://elemwala-backend.toolforge.org merely runs such threads). While the specific Python implementation need not exist in the same fashion as written, it should still be possible ** ❌ to traverse the full graph of connections between Wikidata entities having certain property links (for instance, to go from one sense to another three "synonym" statements away, or to go from one lexeme to another three "etymology" statements away); the current functions which simply run "haswbstatement:P5137" full-text searches are not sufficient. * ninai/base/interfaces.py: class CandidatePathNode(TypedDict): # due to XMLRPC serialization, must remain a TypedDict ** This holds two things: (1) a particular entity ID (item/lexeme/sense), and (2) a list of two-item tuples representing the links between the source entity of a traversal and that particular entity ID. If L789-S1 was three "translation" links away from L123-S1, and a traversal is run with L123-S1 as the starting point, then the CandidatePathNode for L789-S1 would have as its second element a list of three two-item tuples (for each of the three links). As a result, it should be possible ** ❌ to return not only entities linked to a given entity, but the (shortest) path between a source entity and that given entity, as part of a traversal. * ninai/base/interfaces.py: class SenseRefinement(Protocol): ** Functions satisfying this Protocol filter a list of * ninai/graph/client.py: class CandidateProcessor: ** Functions satisfying this Protocol filter a list of * ninai/base/pausedrenderersupply.py: class PausedRendererSupply(NamedTuple): ** This class was added to assist in something Maria Keet had asked for once: if a particular grammatical feature is not known at a point in the rendering process, and there isn't a clear way to proceed without knowing it, this should cause the rendering process to be ''paused'' and the user should be allowed to ''supply'' the missing information to the ''renderer'' and resume that process. As a result, it should be possible ** ❌ to return some state representation, in the event of an error within rendering, that can be resumed with appropriate information provided. * ninai/base/interfaces.py: class PreHookOperator(NamedTuple): * ninai/base/interfaces.py: class MainRendererOperator(NamedTuple): * ninai/base/interfaces.py: class PostHookOperator(NamedTuple): ** These exist merely to define a [[:w:en:Tagged union]] of possible types of functions usable by Ninai during certain rendering steps (see the note for PreHook, Renderer, PostHook above). Following from the previous bullet point, if a particular step is not defined for a language-semantic unit type combination, this should cause the rendering process to be ''paused'' and the user should be allowed to ''supply'' the missing function to the ''renderer'' and resume that process. * ninai/base/interfaces.py: class CatenaYieldingIterator(Protocol): ** Iterator classes matching this protocol, which otherwise could be reduced to individual functions, exist for a couple of reasons: **# Because Wikifunctions is based on principles exemplified by Haskell (which is not an implementation language, which has proper tail call optimization, but which does not have 'for' loops), and because Ninai/Udiron is written in Python (which is an implementation language, which does not optimize tail calls<ref>https://neopythonic.blogspot.com/2009/04/tail-recursion-elimination.html</ref>, but which has 'for' loops), such iterators return, in addition to the object they generate, a new iterator starting from the point at which that object was generated. **# Generators (and thus iterators) are not automatically serializable (indeed, even more comprehensive Python libraries than pickle cannot do so<ref>https://pypi.org/project/dill/</ref>), so these objects manually implement Python's iterator protocol. ** As a result of both of these things, it should be possible ** ❌ to serialize and deserialize the current state of a given sense finding process. * ninai/graph/client.py: class SenseFindingIterator: ** This represents the main starting point of the sense finding process, and is serializable for the reasons above. * ninai/base/interfaces.py: class SenseFindingFallback(CatenaYieldingIterator, Protocol): * ninai/graph/calque.py: class CalqueIterator: # finding equivalents for parts of a complex lexeme in a source language, and reassembling the equivalents in a target language * ninai/graph/calque.py: class VerboNominalSyntagmaCalque: # in the situation where a verb consists of e.g. (a noun) + "to do" * ninai/graph/calque.py: class EndocentricCompoundCalque: # in the situation where a noun consists of two other nouns, or an adjective attached to a noun * ninai/graph/calque.py: class DerivationCalque: # in the situation where a lexeme consists of another lexeme with a derivational affix * ninai/graph/fallbacks.py: class CatenaZipperListIterator: # returning choices from only a specific list of lexemes * ninai/graph/cognate.py: class CognateIterator: # returning lexemes in a target language that, via "derived from lexeme" statements, are etymologically related to a lexeme in a source language * ninai/graph/transcribe.py: class TranscribeIterator: # returning pseudo-lexemes that consist of another lexeme in a source language with its (phonetic/orthographic) representation converted to a target language * ninai/graph/__init__.py: class CatenaFromItemIdIterator: # simply produces a pseudo-lexeme whose lemma is the item label ** In addition to the notes about "CatenaYieldingIterator" above, these iterators perform fallback steps of different kinds, mainly involving finding parts/equivalents of other lexemes outside the target language. * ninai/base/interfaces.py: class Constructorify(Protocol): # not used yet, but will be reintroduced soon * ninai/base/interfaces.py: class Transcribe(Protocol): # actually performs the conversion of a (phonetic/orthographic) representation into a target language * ninai/base/interfaces.py: class BinominalCompoundCalque(Protocol): # actually reassembles the equivalents of two nouns (or an adjective and a noun) * ninai/base/interfaces.py: class DerivationalCalqueFunction(Protocol): # actually reassembles the equivalents of a lexeme and an attached affix ** Functions satisfying these protocols perform the steps in the target language of assembling a candidate word or phrase from any found equivalents. * ninai/renderers/mul.py: class FinalPunctuationFunction(Protocol): ** This simply represents a function that adds some punctuation to a phrase/clause. === Type aliases === (May be initially incomplete, since not all type aliases may have been marked with the "TypeAlias" type annotation. * ninai/base/constructorrenderer.py:RenderingPhaseEncapsulator: "TypeAlias" = Union[ConstructorMainRenderer, CoreArgumentsRenderer, ScopeArgumentsRenderer] ** ... * ninai/base/interfaces.py:ChildIdentifiersMapping: "TypeAlias" = Dict[str, Tuple[Tuple[str, ...], str]] ** ... * ninai/base/interfaces.py:CoreArguments: "TypeAlias" = Dict[str, "Constructor"] ** ... * ninai/base/interfaces.py:ScopeArguments: "TypeAlias" = List["Constructor"] ** ... * ninai/base/interfaces.py:ThematicRelationSpec: "TypeAlias" = Dict[str, Statement] ** ... * ninai/base/interfaces.py:NonConstructorTypeArguments: "TypeAlias" = Union[ ** ... * ninai/base/interfaces.py:ConstructorArgument: "TypeAlias" = Union["Constructor", NonConstructorTypeArguments] ** ... * ninai/base/interfaces.py:ConstructorArguments: "TypeAlias" = Sequence[ConstructorArgument] ** ... * ninai/graph/server.py:EntityGraph: TypeAlias = "nx.MultiDiGraph[str]" ** ... === Other objects === Some rough equivalents for the types named in the annotations below: * Dict = [[Z883]] * Set = (no equivalent, maybe [[Z883]] with [[Z1]] keys and [[Z41]] as the only value?) * List = [[Z881]] * Language = [[Z60]] (May be initially incomplete, since this is basically a list of entities not falling into any of the above types.) * ninai/base/constructorinterfaces.py:__constructor_argument_filters__: Dict[str, "ArgumentFilter"] = {} ** ... * ninai/base/constructorinterfaces.py:__constructor_core_arguments__: Dict[str, List[str]] = {} ** ... * ninai/base/constructorinterfaces.py:__constructor_docstrings__: Dict[str, str] = {} ** ... * ninai/base/constructorinterfaces.py:__constructor_type_hierarchy__: Dict[str, List[str]] = {} ** ... * ninai/base/constructorinterfaces.py:__config_insulators__: Set[str] = set() ** ... * ninai/base/constructorinterfaces.py:__config_setters__: Set[str] = set() ** ... * ninai/base/constructorinterfaces.py:__unfiltered_framing_constructors__: Set[str] = set() ** ... * ninai/graph/__init__.py:__fallback_chains__: DefaultDict[Language, DefaultDict[str, List[str]]] = defaultdict(lambda: defaultdict(list)) ** ... * ninai/graph/__init__.py:__fallback_chain_types__: Dict[str, Type[i.SenseFindingFallback]] = {...} ** ... * ninai/graph/client.py:__language_range__: Dict[Language, Tuple[tfsli.Qid, ...]] = {} ** ... * ninai/renderers/__mappings__.py:__arg_pre_hooks__: DefaultDict[str, DefaultDict[str, Dict["Language", "ArgPreHook"]]] = defaultdict(lambda: defaultdict(dict)) ** ... * ninai/renderers/__mappings__.py:__arg_post_hooks__: DefaultDict[str, DefaultDict[str, Dict["Language", "ArgPostHook"]]] = defaultdict(lambda: defaultdict(dict)) ** ... * ninai/renderers/__mappings__.py:__pre_hooks__: DefaultDict[str, Dict["Language", "PreHook"]] = defaultdict(dict) ** ... * ninai/renderers/__mappings__.py:__post_hooks__: DefaultDict[str, Dict["Language", "PostHook"]] = defaultdict(dict) ** ... * ninai/renderers/__mappings__.py:__renderers__: DefaultDict[str, Dict["Language", "Renderer"]] = defaultdict(dict) ** ... * ninai/renderers/__mappings__.py:__syntactic_role_functions__: DefaultDict[str, Dict["Language", "SyntacticRoleFunction"]] = defaultdict(dict) ** ... * ninai/renderers/__mappings__.py:__sense_refines__: Dict["Language", "SenseRefinement"] = {} ** ... * ninai/renderers/__mappings__.py:__initial_catena_processors__: Dict["Language", "InitialCatenaProcessor"] = {} ** ... * ninai/renderers/__mappings__.py:__thematic_inflection_additions__: Dict["Language", "ThematicInflectionAddition"] = {} ** ... * ninai/renderers/__mappings__.py:__inflection_functions__: Dict["Language", "InflectionFunction"] = {} ** ... * ninai/renderers/__mappings__.py:__scope_output_processors__: Dict["Language", "ScopeOutputProcessor"] = {} ** ... * ninai/renderers/__mappings__.py:__thematic_relationless_processors__: Dict["Language", "ThematicRelationlessProcessor"] = {} ** ... * ninai/renderers/__mappings__.py:__constructorifies__: Dict["Language", "Constructorify"] = {} ** ... * ninai/renderers/__mappings__.py:__transcribes__: Dict["Language", "Transcribe"] = {} ** ... * ninai/renderers/__mappings__.py:__binominal_calques__: Dict["Language", "BinominalCompoundCalque"] = {} ** ... * ninai/renderers/__mappings__.py:__derivation_calques__: Dict["Language", "DerivationalCalqueFunction"] = {} ** ... * ninai/renderers/mul.py:__full_stop_overrides__: Dict[Language, FinalPunctuationFunction] = {} ** ... <references/> == Missing Wikifunctions features for this type == @[[User:Mahir256|Mahir256]] What are the currently missing features of Wikifunctions that are necessary to actually implement this type? Which of these are fundamental, and which are just useful to port the code directly from Ninai? It could be useful to have them all listed in one place. [[User:Dv103|Dv103]] ([[User talk:Dv103|talk]]) 17:36, 16 June 2026 (UTC) *{{re|Dv103|Denny|DVrandecic (WMF)}} I have started assembling those above, where explanations are given for different classes' existence, and particular desiderata for implementation are given with a ❌ (any of which you're welcome to change to a ✅ if there is evidence that the thing described is possible). I leave it to you to decide which are 'fundamental' versus 'just useful'. [[User:Mahir256|Mahir256]] ([[User talk:Mahir256|talk]]) 22:58, 22 June 2026 (UTC) *:A thing about sets: what is the issue in using {{Z|Z881}} to encode them? Wikifunctions already contains lists that are treated as sets. We already have functions to treat typed list as if they were sets (i.e., ignoring the order). Also consider that, under the hood, {{Z|Z883}} is just a wrapper for a {{Z|Z881}} of {{Z|Z882}}. [[User:Dv103|Dv103]] ([[User talk:Dv103|talk]]) 07:54, 23 June 2026 (UTC) qzb4c3sf9upobllntgvsx12qdlvfhwp User:Jsamwrites/Infoboxes 2 85638 285905 282774 2026-06-23T11:00:22Z Jsamwrites 938 285905 wikitext text/x-wiki == Infoboxes == * {{Z|Z36327}} * {{Z|Z36325}} * {{Z|Z36323}} * {{Z|Z36296}} * {{Z|Z36290}} * {{Z|Z36288}} * {{Z|Z36333}} * {{Z|Z36285}} * {{Z|Z36282}} * {{Z|Z36137}} * {{Z|Z35993}} * {{Z|Z35982}} * {{Z|Z35976}} * {{Z|Z35974}} * {{Z|Z35972}} * {{Z|Z35970}} * {{Z|Z35968}} * {{Z|Z36678}} 9vdl1aq8zdhbwcuomaat6q5v079fi94 Z36463 0 85925 285576 285565 2026-06-22T12:06:17Z Denny 81 285576 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36463" }, "Z2K2": { "Z1K1": "Z4", "Z4K1": "Z36463", "Z4K2": [ "Z3", { "Z1K1": "Z3", "Z3K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z6091" }, "Z3K2": "Z36463K1", "Z3K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Features" } ] }, "Z3K4": { "Z1K1": "Z40", "Z40K1": "Z42" } }, { "Z1K1": "Z3", "Z3K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z89" }, "Z3K2": "Z36463K2", "Z3K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Contents" } ] }, "Z3K4": { "Z1K1": "Z40", "Z40K1": "Z42" } } ], "Z4K3": "Z101", "Z4K4": "Z36670", "Z4K7": [ "Z46" ], "Z4K8": [ "Z64" ] }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "(experimental) Syntactic option" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Describes a single option in a Syntactic table, particularly the content (as a fragment) and a list of grammatical features this option is for" } ] } } kcqtslcle3wrg4kzffd0g6dsq9ayxmw Z2048 0 85972 285670 284237 2026-06-22T16:57:36Z Ameisenigel 44 de 285670 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z2048" }, "Z2K2": { "Z1K1": "Z60", "Z60K1": "sd-deva" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Sindi (Devanāgarī script)" }, { "Z1K1": "Z11", "Z11K1": "Z2048", "Z11K2": "सिंधी" }, { "Z1K1": "Z11", "Z11K1": "Z1430", "Z11K2": "Sindhi (Devanagari-Schrift)" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } 7j5uxe3743jqr8mqjbq7wmni8pdcsyu Z36603 0 86141 285866 284983 2026-06-23T06:12:18Z 99of9 1622 in/on/at for location 285866 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36603" }, "Z2K2": { "Z1K1": "Z14", "Z14K1": "Z29010", "Z14K2": { "Z1K1": "Z7", "Z7K1": "Z26107", "Z26107K1": { "Z1K1": "Z18", "Z18K1": "Z29010K5" }, "Z26107K2": { "Z1K1": "Z7", "Z7K1": "Z22514", "Z22514K1": [ "Z6", { "Z1K1": "Z7", "Z7K1": "Z36270", "Z36270K1": { "Z1K1": "Z18", "Z18K1": "Z29010K1" }, "Z36270K2": { "Z1K1": "Z18", "Z18K1": "Z29010K5" } }, "is the", { "Z1K1": "Z7", "Z7K1": "Z32556", "Z32556K1": { "Z1K1": "Z7", "Z7K1": "Z27410", "Z27410K1": { "Z1K1": "Z7", "Z7K1": "Z27327", "Z27327K1": { "Z1K1": "Z18", "Z18K1": "Z29010K2" }, "Z27327K2": { "Z1K1": "Z6092", "Z6092K1": "P5137" }, "Z27327K3": { "Z1K1": "Z18", "Z18K1": "Z29010K5" } }, "Z27410K2": [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q1817208" } ] }, "Z32556K2": { "Z1K1": "Z7", "Z7K1": "Z12203", "Z12203K1": { "Z1K1": "Z7", "Z7K1": "Z36270", "Z36270K1": { "Z1K1": "Z18", "Z18K1": "Z29010K2" }, "Z36270K2": { "Z1K1": "Z18", "Z18K1": "Z29010K5" } } } }, { "Z1K1": "Z7", "Z7K1": "Z36270", "Z36270K1": { "Z1K1": "Z18", "Z18K1": "Z29010K3" }, "Z36270K2": { "Z1K1": "Z18", "Z18K1": "Z29010K5" } }, { "Z1K1": "Z7", "Z7K1": "Z30798", "Z30798K1": { "Z1K1": "Z18", "Z18K1": "Z29010K4" } }, { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z22131", "Z22131K1": { "Z1K1": "Z7", "Z7K1": "Z32645", "Z32645K1": { "Z1K1": "Z7", "Z7K1": "Z30120", "Z30120K1": { "Z1K1": "Z18", "Z18K1": "Z29010K4" }, "Z30120K2": [ "Z6030", "Z6033", "Z6035", "Z6036" ], "Z30120K3": [ "Z60", "Z1002" ], "Z30120K4": [ "Z6092", { "Z1K1": "Z6092", "Z6092K1": "P31" }, { "Z1K1": "Z6092", "Z6092K1": "P279" } ] } } }, "Z802K2": "the", "Z802K3": "" }, { "Z1K1": "Z7", "Z7K1": "Z36270", "Z36270K1": { "Z1K1": "Z18", "Z18K1": "Z29010K4" }, "Z36270K2": { "Z1K1": "Z18", "Z18K1": "Z29010K5" } } ] } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "superlative definition, English, composition 2" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } pir5kd0ldiozehfg4xjctbnnt037zon Z36614 0 86152 285604 285003 2026-06-22T12:28:32Z Denny 81 285604 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36614" }, "Z2K2": { "Z1K1": "Z20", "Z20K1": "Z36613", "Z20K2": { "Z1K1": "Z7", "Z7K1": "Z36613", "Z36613K1": { "Z1K1": "Z36462", "Z36462K1": "Z1002", "Z36462K2": { "Z1K1": "Z6091", "Z6091K1": "Q1084" }, "Z36462K3": [ "Z6091" ], "Z36462K4": [ "Z36463", { "Z1K1": "Z36463", "Z36463K1": [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q110786" } ], "Z36463K2": [ "Z89", { "Z1K1": "Z89", "Z89K1": "eye" } ] }, { "Z1K1": "Z36463", "Z36463K1": [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q146786" } ], "Z36463K2": [ "Z89", { "Z1K1": "Z89", "Z89K1": "eyes" } ] } ] } }, "Z20K3": { "Z1K1": "Z7", "Z7K1": "Z862", "Z862K2": "Z1002" } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "eye is English" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } 3uk9dykwstui76nfd6q9i2oj1ha931a Z36645 0 86186 285568 285085 2026-06-22T12:00:04Z Denny 81 285568 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36645" }, "Z2K2": { "Z1K1": "Z36462", "Z36462K1": "Z1430", "Z36462K2": { "Z1K1": "Z6091", "Z6091K1": "Q1084" }, "Z36462K3": [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q1775415" } ], "Z36462K4": [ "Z36463", { "Z1K1": "Z36463", "Z36463K1": [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q110786" }, { "Z1K1": "Z6091", "Z6091K1": "Q131105" } ], "Z36463K2": [ "Z89", { "Z1K1": "Z89", "Z89K1": "Gans" } ] }, { "Z1K1": "Z36463", "Z36463K1": [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q110786" }, { "Z1K1": "Z6091", "Z6091K1": "Q146233" } ], "Z36463K2": [ "Z89", { "Z1K1": "Z89", "Z89K1": "Gans" } ] }, { "Z1K1": "Z36463", "Z36463K1": [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q110786" }, { "Z1K1": "Z6091", "Z6091K1": "Q145599" } ], "Z36463K2": [ "Z89", { "Z1K1": "Z89", "Z89K1": "Gans" } ] }, { "Z1K1": "Z36463", "Z36463K1": [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q110786" }, { "Z1K1": "Z6091", "Z6091K1": "Q146078" } ], "Z36463K2": [ "Z89", { "Z1K1": "Z89", "Z89K1": "Gans" } ] }, { "Z1K1": "Z36463", "Z36463K1": [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q146786" }, { "Z1K1": "Z6091", "Z6091K1": "Q131105" } ], "Z36463K2": [ "Z89", { "Z1K1": "Z89", "Z89K1": "Gänse" } ] }, { "Z1K1": "Z36463", "Z36463K1": [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q146786" }, { "Z1K1": "Z6091", "Z6091K1": "Q146233" } ], "Z36463K2": [ "Z89", { "Z1K1": "Z89", "Z89K1": "Gänse" } ] }, { "Z1K1": "Z36463", "Z36463K1": [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q146786" }, { "Z1K1": "Z6091", "Z6091K1": "Q145599" } ], "Z36463K2": [ "Z89", { "Z1K1": "Z89", "Z89K1": "Gänsen" } ] }, { "Z1K1": "Z36463", "Z36463K1": [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q146786" }, { "Z1K1": "Z6091", "Z6091K1": "Q146078" } ], "Z36463K2": [ "Z89", { "Z1K1": "Z89", "Z89K1": "Gänse" } ] } ] }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "German noun Gans table" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } 1g0bic4i50h8p07cfn4ve5ou1y8ik4h Z36656 0 86197 285569 285237 2026-06-22T12:02:01Z Denny 81 Removed Z36657 from the approved list of implementations 285569 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36656" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z6091" }, "Z17K2": "Z36656K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "options" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z89", "Z17K2": "Z36656K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "fragment" } ] } } ], "Z8K2": "Z36463", "Z8K3": [ "Z20", "Z36680", "Z36681" ], "Z8K4": [ "Z14" ], "Z8K5": "Z36656" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Create Syntactic option" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Constructs a Syntactic option from a list of grammatical features when this option applies and the HTML fragment" } ] } } k1scjio84x184v7qnoe73d66eqimscq 285570 285569 2026-06-22T12:02:04Z Denny 81 Removed Z36680 and Z36681 from the approved list of test cases 285570 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36656" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z6091" }, "Z17K2": "Z36656K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "options" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z89", "Z17K2": "Z36656K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "fragment" } ] } } ], "Z8K2": "Z36463", "Z8K3": [ "Z20" ], "Z8K4": [ "Z14" ], "Z8K5": "Z36656" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Create Syntactic option" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Constructs a Syntactic option from a list of grammatical features when this option applies and the HTML fragment" } ] } } s32fvtecvnkcmhyadpk2xcsgzua5cbj 285571 285570 2026-06-22T12:02:25Z Denny 81 285571 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36656" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z6091" }, "Z17K2": "Z36656K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "options" } ] } }, { "Z1K1": "Z17", "Z17K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z89" }, "Z17K2": "Z36656K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "fragment" } ] } } ], "Z8K2": "Z36463", "Z8K3": [ "Z20" ], "Z8K4": [ "Z14" ], "Z8K5": "Z36656" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Create Syntactic option" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Constructs a Syntactic option from a list of grammatical features when this option applies and the HTML fragment" } ] } } crt3d4xwwzh9cb2rlc9mxgti9mats5z 285574 285571 2026-06-22T12:03:47Z Denny 81 Added Z36680 and Z36681 to the approved list of test cases 285574 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36656" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z6091" }, "Z17K2": "Z36656K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "options" } ] } }, { "Z1K1": "Z17", "Z17K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z89" }, "Z17K2": "Z36656K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "fragment" } ] } } ], "Z8K2": "Z36463", "Z8K3": [ "Z20", "Z36680", "Z36681" ], "Z8K4": [ "Z14" ], "Z8K5": "Z36656" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Create Syntactic option" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Constructs a Syntactic option from a list of grammatical features when this option applies and the HTML fragment" } ] } } tw63s27v0bj50im2wmfmsst66z8he1n 285575 285574 2026-06-22T12:05:44Z Denny 81 285575 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36656" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z6091" }, "Z17K2": "Z36656K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "options" } ] } }, { "Z1K1": "Z17", "Z17K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z89" }, "Z17K2": "Z36656K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "fragments" } ] } } ], "Z8K2": "Z36463", "Z8K3": [ "Z20", "Z36680", "Z36681" ], "Z8K4": [ "Z14" ], "Z8K5": "Z36656" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Create Syntactic option" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Constructs a Syntactic option from a list of grammatical features when this option applies and the HTML fragment" } ] } } 3mu0jnryci2dc07cq7kec3n7gsp0h5t 285598 285575 2026-06-22T12:20:53Z Denny 81 Added Z36657 to the approved list of implementations 285598 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36656" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z6091" }, "Z17K2": "Z36656K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "options" } ] } }, { "Z1K1": "Z17", "Z17K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z89" }, "Z17K2": "Z36656K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "fragments" } ] } } ], "Z8K2": "Z36463", "Z8K3": [ "Z20", "Z36680", "Z36681" ], "Z8K4": [ "Z14", "Z36657" ], "Z8K5": "Z36656" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Create Syntactic option" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Constructs a Syntactic option from a list of grammatical features when this option applies and the HTML fragment" } ] } } ofqp0nk59qaas4fcqcj5pbq8s3vw1wc Z36659 0 86200 285602 285131 2026-06-22T12:24:28Z Denny 81 285602 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36659" }, "Z2K2": { "Z1K1": "Z14", "Z14K1": "Z36658", "Z14K2": { "Z1K1": "Z36463", "Z36463K1": { "Z1K1": "Z18", "Z18K1": "Z36658K1" }, "Z36463K2": [ "Z89", { "Z1K1": "Z7", "Z7K1": "Z27868", "Z27868K1": { "Z1K1": "Z18", "Z18K1": "Z36658K2" } } ] } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "string to HTML fragment for string" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } bfbe4hq3hy7sxv6744j74loxyuuipj3 Z36661 0 86202 285600 285138 2026-06-22T12:22:47Z Denny 81 285600 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36661" }, "Z2K2": { "Z1K1": "Z14", "Z14K1": "Z36660", "Z14K2": { "Z1K1": "Z36463", "Z36463K1": { "Z1K1": "Z18", "Z18K1": "Z36660K1" }, "Z36463K2": [ "Z89", { "Z1K1": "Z7", "Z7K1": "Z27868", "Z27868K1": { "Z1K1": "Z7", "Z7K1": "Z14396", "Z14396K1": { "Z1K1": "Z18", "Z18K1": "Z36660K2" } } } ] } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "str to HTML of str of mono text" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } mxlmiofkbs7bcb7pwkv75mwkw3s1pzh Z36666 0 86207 285586 285159 2026-06-22T12:11:47Z Denny 81 Removed Z36669 from the approved list of implementations 285586 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36666" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z36463", "Z17K2": "Z36666K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "option" } ] } } ], "Z8K2": "Z89", "Z8K3": [ "Z20", "Z36667", "Z36668" ], "Z8K4": [ "Z14" ], "Z8K5": "Z36666" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "fragment of option" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "returns the HTML fragment of a given Syntactic option" } ] } } s8lnisd73cnmnyt4pobgmrld0xzo5ji 285587 285586 2026-06-22T12:11:50Z Denny 81 Removed Z36667 and Z36668 from the approved list of test cases 285587 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36666" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z36463", "Z17K2": "Z36666K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "option" } ] } } ], "Z8K2": "Z89", "Z8K3": [ "Z20" ], "Z8K4": [ "Z14" ], "Z8K5": "Z36666" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "fragment of option" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "returns the HTML fragment of a given Syntactic option" } ] } } saw0opdcef5zq7lvabuv9i8xlu09tvi 285588 285587 2026-06-22T12:12:08Z Denny 81 285588 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36666" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z36463", "Z17K2": "Z36666K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "option" } ] } } ], "Z8K2": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z89" }, "Z8K3": [ "Z20" ], "Z8K4": [ "Z14" ], "Z8K5": "Z36666" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "fragment of option" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "returns the HTML fragment of a given Syntactic option" } ] } } 59pwu6zovw4pjjyaasdt3fxkyz5tphq 285592 285588 2026-06-22T12:15:13Z Denny 81 Added Z36667 and Z36668 to the approved list of test cases 285592 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36666" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z36463", "Z17K2": "Z36666K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "option" } ] } } ], "Z8K2": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z89" }, "Z8K3": [ "Z20", "Z36667", "Z36668" ], "Z8K4": [ "Z14" ], "Z8K5": "Z36666" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "fragment of option" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "returns the HTML fragment of a given Syntactic option" } ] } } kw1l1lrf724p17nj60o3uoefjintc3k 285593 285592 2026-06-22T12:15:35Z Denny 81 285593 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36666" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z36463", "Z17K2": "Z36666K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "option" } ] } } ], "Z8K2": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z89" }, "Z8K3": [ "Z20", "Z36667", "Z36668" ], "Z8K4": [ "Z14" ], "Z8K5": "Z36666" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "fragments of option" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "returns the HTML fragments of a given Syntactic option" } ] } } ogd5dauo7o6lng1vqcrwdj34krlkeww 285594 285593 2026-06-22T12:16:11Z Denny 81 Added Z36669 to the approved list of implementations 285594 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36666" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z36463", "Z17K2": "Z36666K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "option" } ] } } ], "Z8K2": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z89" }, "Z8K3": [ "Z20", "Z36667", "Z36668" ], "Z8K4": [ "Z14", "Z36669" ], "Z8K5": "Z36666" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "fragments of option" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "returns the HTML fragments of a given Syntactic option" } ] } } 5herxb44jo2c1zasr42lwviw0d7ngo6 Z36667 0 86208 285589 285155 2026-06-22T12:13:50Z Denny 81 285589 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36667" }, "Z2K2": { "Z1K1": "Z20", "Z20K1": "Z36666", "Z20K2": { "Z1K1": "Z7", "Z7K1": "Z36666", "Z36666K1": { "Z1K1": "Z36463", "Z36463K1": [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q110786" } ], "Z36463K2": [ "Z89", { "Z1K1": "Z89", "Z89K1": "eye" } ] } }, "Z20K3": { "Z1K1": "Z7", "Z7K1": "Z889", "Z889K2": [ "Z89" ], "Z889K3": "Z877" } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "eye is eye" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } e172onuh930d37toc7ct4abhm3bf3b9 285590 285589 2026-06-22T12:14:10Z Denny 81 285590 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36667" }, "Z2K2": { "Z1K1": "Z20", "Z20K1": "Z36666", "Z20K2": { "Z1K1": "Z7", "Z7K1": "Z36666", "Z36666K1": { "Z1K1": "Z36463", "Z36463K1": [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q110786" } ], "Z36463K2": [ "Z89", { "Z1K1": "Z89", "Z89K1": "eye" } ] } }, "Z20K3": { "Z1K1": "Z7", "Z7K1": "Z889", "Z889K2": [ "Z89", { "Z1K1": "Z89", "Z89K1": "eye" } ], "Z889K3": "Z877" } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "eye is eye" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } ldqvze214tca7co1nnh1s9scw50w2m8 Z36668 0 86209 285591 285156 2026-06-22T12:14:54Z Denny 81 285591 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36668" }, "Z2K2": { "Z1K1": "Z20", "Z20K1": "Z36666", "Z20K2": { "Z1K1": "Z7", "Z7K1": "Z36666", "Z36666K1": { "Z1K1": "Z36463", "Z36463K1": [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q146786" }, { "Z1K1": "Z6091", "Z6091K1": "Q146078" } ], "Z36463K2": [ "Z89", { "Z1K1": "Z89", "Z89K1": "Gänse" } ] } }, "Z20K3": { "Z1K1": "Z7", "Z7K1": "Z889", "Z889K2": [ "Z89", { "Z1K1": "Z89", "Z89K1": "Gänse" } ], "Z889K3": "Z877" } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Gänse is Gänse" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } hhl7obye9qgyouhkyomqa66j071cbdp Z36670 0 86211 285577 285208 2026-06-22T12:06:37Z Denny 81 Removed Z36677 from the approved list of implementations 285577 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36670" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z36463", "Z17K2": "Z36670K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "this" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z36463", "Z17K2": "Z36670K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "that" } ] } } ], "Z8K2": "Z40", "Z8K3": [ "Z20", "Z36671", "Z36672", "Z36673", "Z36674", "Z36675", "Z36676" ], "Z8K4": [ "Z14" ], "Z8K5": "Z36670" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Syntactic option equality" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31", { "Z1K1": "Z31", "Z31K1": "Z1002", "Z31K2": [ "Z6", "same Syntactic option", "same option" ] } ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "whether two Syntactic options are the same. The order of the features in the option does not matter." } ] } } hdgoxea8jq5ef9oedkyjpx37j8p6zno 285578 285577 2026-06-22T12:06:40Z Denny 81 Removed Z36671, Z36672, Z36673, Z36674, Z36675 and Z36676 from the approved list of test cases 285578 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36670" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z36463", "Z17K2": "Z36670K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "this" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z36463", "Z17K2": "Z36670K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "that" } ] } } ], "Z8K2": "Z40", "Z8K3": [ "Z20" ], "Z8K4": [ "Z14" ], "Z8K5": "Z36670" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Syntactic option equality" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31", { "Z1K1": "Z31", "Z31K1": "Z1002", "Z31K2": [ "Z6", "same Syntactic option", "same option" ] } ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "whether two Syntactic options are the same. The order of the features in the option does not matter." } ] } } qfyc1l47okh4qxqy0dzm7etpgxrhys6 285585 285578 2026-06-22T12:11:14Z Denny 81 285585 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36670" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z36463", "Z17K2": "Z36670K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "this" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z36463", "Z17K2": "Z36670K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "that" } ] } } ], "Z8K2": "Z40", "Z8K3": [ "Z20" ], "Z8K4": [ "Z14" ], "Z8K5": "Z36670" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Syntactic option equality" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31", { "Z1K1": "Z31", "Z31K1": "Z1002", "Z31K2": [ "Z6", "same Syntactic option", "same option", "equivalent option" ] } ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "whether two Syntactic options are the same. The order of the features in the option does not matter." } ] } } roxoy6d01fyve2fvr2pxrfefa2y5a4x 285596 285585 2026-06-22T12:20:01Z Denny 81 Added Z36671, Z36672, Z36673, Z36674, Z36675 and Z36676 to the approved list of test cases 285596 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36670" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z36463", "Z17K2": "Z36670K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "this" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z36463", "Z17K2": "Z36670K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "that" } ] } } ], "Z8K2": "Z40", "Z8K3": [ "Z20", "Z36671", "Z36672", "Z36673", "Z36674", "Z36675", "Z36676" ], "Z8K4": [ "Z14" ], "Z8K5": "Z36670" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Syntactic option equality" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31", { "Z1K1": "Z31", "Z31K1": "Z1002", "Z31K2": [ "Z6", "same Syntactic option", "same option", "equivalent option" ] } ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "whether two Syntactic options are the same. The order of the features in the option does not matter." } ] } } 564j2tuxtk71hohqf6bo2s8gbait1q9 285597 285596 2026-06-22T12:20:10Z Denny 81 Added Z36677 to the approved list of implementations 285597 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36670" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z36463", "Z17K2": "Z36670K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "this" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z36463", "Z17K2": "Z36670K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "that" } ] } } ], "Z8K2": "Z40", "Z8K3": [ "Z20", "Z36671", "Z36672", "Z36673", "Z36674", "Z36675", "Z36676" ], "Z8K4": [ "Z14", "Z36677" ], "Z8K5": "Z36670" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Syntactic option equality" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31", { "Z1K1": "Z31", "Z31K1": "Z1002", "Z31K2": [ "Z6", "same Syntactic option", "same option", "equivalent option" ] } ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "whether two Syntactic options are the same. The order of the features in the option does not matter." } ] } } 9wbnntdzmq2bl53k7i8u31p4xc0sphe Z36671 0 86212 285579 285162 2026-06-22T12:07:21Z Denny 81 285579 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36671" }, "Z2K2": { "Z1K1": "Z20", "Z20K1": "Z36670", "Z20K2": { "Z1K1": "Z7", "Z7K1": "Z36670", "Z36670K1": { "Z1K1": "Z36463", "Z36463K1": [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q146786" } ], "Z36463K2": [ "Z89", { "Z1K1": "Z89", "Z89K1": "geese" } ] }, "Z36670K2": { "Z1K1": "Z36463", "Z36463K1": [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q146786" } ], "Z36463K2": [ "Z89", { "Z1K1": "Z89", "Z89K1": "geese" } ] } }, "Z20K3": { "Z1K1": "Z7", "Z7K1": "Z844", "Z844K2": { "Z1K1": "Z40", "Z40K1": "Z41" } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "geese in plural" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } 0le931287x9xmfgx2medt40fbi2zs9s Z36672 0 86213 285580 285164 2026-06-22T12:07:48Z Denny 81 285580 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36672" }, "Z2K2": { "Z1K1": "Z20", "Z20K1": "Z36670", "Z20K2": { "Z1K1": "Z7", "Z7K1": "Z36670", "Z36670K1": { "Z1K1": "Z36463", "Z36463K1": [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q110786" } ], "Z36463K2": [ "Z89", { "Z1K1": "Z89", "Z89K1": "fish" } ] }, "Z36670K2": { "Z1K1": "Z36463", "Z36463K1": [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q146786" } ], "Z36463K2": [ "Z89", { "Z1K1": "Z89", "Z89K1": "fish" } ] } }, "Z20K3": { "Z1K1": "Z7", "Z7K1": "Z844", "Z844K2": { "Z1K1": "Z40", "Z40K1": "Z42" } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "fish singular ≠ fish plural" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } 88gjia1g6wikekcivjczle681fa0o3v Z36673 0 86214 285581 285166 2026-06-22T12:08:17Z Denny 81 285581 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36673" }, "Z2K2": { "Z1K1": "Z20", "Z20K1": "Z36670", "Z20K2": { "Z1K1": "Z7", "Z7K1": "Z36670", "Z36670K1": { "Z1K1": "Z36463", "Z36463K1": [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q131105" }, { "Z1K1": "Z6091", "Z6091K1": "Q110786" } ], "Z36463K2": [ "Z89", { "Z1K1": "Z89", "Z89K1": "Haus" } ] }, "Z36670K2": { "Z1K1": "Z36463", "Z36463K1": [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q110786" }, { "Z1K1": "Z6091", "Z6091K1": "Q131105" } ], "Z36463K2": [ "Z89", { "Z1K1": "Z89", "Z89K1": "Haus" } ] } }, "Z20K3": { "Z1K1": "Z7", "Z7K1": "Z844", "Z844K2": { "Z1K1": "Z40", "Z40K1": "Z41" } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "different order of features" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } 3kzxt3o14zhwi2yezhc4p5gyw9aj63e Z36674 0 86215 285582 285210 2026-06-22T12:08:42Z Denny 81 285582 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36674" }, "Z2K2": { "Z1K1": "Z20", "Z20K1": "Z36670", "Z20K2": { "Z1K1": "Z7", "Z7K1": "Z36670", "Z36670K1": { "Z1K1": "Z36463", "Z36463K1": [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q131105" }, { "Z1K1": "Z6091", "Z6091K1": "Q110786" } ], "Z36463K2": [ "Z89", { "Z1K1": "Z89", "Z89K1": "Haus" } ] }, "Z36670K2": { "Z1K1": "Z36463", "Z36463K1": [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q131105" }, { "Z1K1": "Z6091", "Z6091K1": "Q110786" } ], "Z36463K2": [ "Z89", { "Z1K1": "Z89", "Z89K1": "Haus" } ] } }, "Z20K3": { "Z1K1": "Z7", "Z7K1": "Z844", "Z844K2": { "Z1K1": "Z40", "Z40K1": "Z41" } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Haus (de) nominative singular" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } aobkt8o69v78henudcsff7otvzzhawr Z36675 0 86216 285583 285170 2026-06-22T12:09:12Z Denny 81 285583 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36675" }, "Z2K2": { "Z1K1": "Z20", "Z20K1": "Z36670", "Z20K2": { "Z1K1": "Z7", "Z7K1": "Z36670", "Z36670K1": { "Z1K1": "Z36463", "Z36463K1": [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q131105" }, { "Z1K1": "Z6091", "Z6091K1": "Q110786" } ], "Z36463K2": [ "Z89", { "Z1K1": "Z89", "Z89K1": "Haus" } ] }, "Z36670K2": { "Z1K1": "Z36463", "Z36463K1": [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q131105" }, { "Z1K1": "Z6091", "Z6091K1": "Q146786" } ], "Z36463K2": [ "Z89", { "Z1K1": "Z89", "Z89K1": "Häuser" } ] } }, "Z20K3": { "Z1K1": "Z7", "Z7K1": "Z844", "Z844K2": { "Z1K1": "Z40", "Z40K1": "Z42" } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "singular ≠ plural" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } j9q2b2jv9pcfw92eh47iwzvslv4nn0e Z36676 0 86217 285584 285172 2026-06-22T12:09:35Z Denny 81 285584 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36676" }, "Z2K2": { "Z1K1": "Z20", "Z20K1": "Z36670", "Z20K2": { "Z1K1": "Z7", "Z7K1": "Z36670", "Z36670K1": { "Z1K1": "Z36463", "Z36463K1": [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q110786" }, { "Z1K1": "Z6091", "Z6091K1": "Q131105" } ], "Z36463K2": [ "Z89", { "Z1K1": "Z89", "Z89K1": "Haus" } ] }, "Z36670K2": { "Z1K1": "Z36463", "Z36463K1": [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q110786" }, { "Z1K1": "Z6091", "Z6091K1": "Q146078" } ], "Z36463K2": [ "Z89", { "Z1K1": "Z89", "Z89K1": "Haus" } ] } }, "Z20K3": { "Z1K1": "Z7", "Z7K1": "Z844", "Z844K2": { "Z1K1": "Z40", "Z40K1": "Z42" } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "different cases, same form" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } 00ntjpenhy6k5kq0y522hpwrj9a3xfd Z36677 0 86218 285595 285196 2026-06-22T12:19:11Z Denny 81 285595 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36677" }, "Z2K2": { "Z1K1": "Z14", "Z14K1": "Z36670", "Z14K2": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z889", "Z889K1": { "Z1K1": "Z7", "Z7K1": "Z36666", "Z36666K1": { "Z1K1": "Z18", "Z18K1": "Z36670K1" } }, "Z889K2": { "Z1K1": "Z7", "Z7K1": "Z36666", "Z36666K1": { "Z1K1": "Z18", "Z18K1": "Z36670K2" } }, "Z889K3": "Z877" }, "Z802K2": { "Z1K1": "Z7", "Z7K1": "Z34270", "Z34270K1": { "Z1K1": "Z7", "Z7K1": "Z36662", "Z36662K1": { "Z1K1": "Z18", "Z18K1": "Z36670K1" } }, "Z34270K2": { "Z1K1": "Z7", "Z7K1": "Z36662", "Z36662K1": { "Z1K1": "Z18", "Z18K1": "Z36670K2" } } }, "Z802K3": { "Z1K1": "Z40", "Z40K1": "Z42" } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "if same fragment then set equality of features" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } pwexr7jbmmhs2a78k6pplsg07m1o2y7 Wikifunctions:Status updates/2026-06-19/de 4 86224 285698 285263 2026-06-22T17:41:10Z Ameisenigel 44 Created page with "Diese Woche haben wir einige Verbesserungen daran vorgenommen, wie Artikel der Abstrakten Wikipedia und eingebettete Ausgaben von Wikifunctions wikiübergreifend dargestellt werden." 285698 wikitext text/x-wiki <languages/> {{Wikifunctions updates | prevlabel = Vorheriges Update | prev = 2026-06-12 | nextlabel = Nächstes Update | next = }} <span id="The_or_not_the,_this_is_(the?)_question"></span> === Der/die/das oder nicht, (das?) ist hier die Frage === Beim Freiwilligentreffen der letzten Woche gab es eine lebhafte Diskussion zu einer bestimmten Frage ([[:commons:File:Abstract Wikipedia Volunteer Corner 2026-06.webm|Aufzeichnung auf Commons verfügbar]]), eingebracht von [[User:Strobilomyces|Strobilomyces]]: Wenn man einen Satz der Form ''“X ist ein Y.”'' bilden möchte, erfordert das X manchmal einen bestimmten Artikel “der/die/das” und manchmal nicht. Hier sind einige Beispiele: * ''Paris is a city.'' * ''The Seine is a river.'' * ''Lake Superior is a lake.'' * ''The Atlantic is an ocean.'' * ''The Eiffel Tower is a monument.'' * ''Westminster Abbey is a monument.'' Das Gleiche gilt für andere Sprachen, die über bestimmte Artikel verfügen, wie zum Beispiel Spanisch, Französisch oder Deutsch. Doch jede Sprache hat ihre eigenen Regeln für den Artikel. Hier ist ein Beispielsatz in vier Sprachen: * ''Latin is a language.'' * ''El latín es un idioma.'' * ''Le latin est une langue.'' * ''Latein ist eine Sprache.'' Wie geht man mit dieser Art von Problem um? Es gibt im Prinzip zwei extreme Lösungen, die – prinzipiell – beide funktionieren: # Abbilden, ob das jeweilige Substantiv in den Lexemen von Wikidata den bestimmten Artikel erfordert. # Eine intelligente Funktion implementieren, die ermittelt, ob ein Substantiv einen bestimmten Artikel benötigt. Beide Ansätze bringen ihre eigenen Herausforderungen mit sich: Der Ansatz mit den Lexemen würde eine enorme Anzahl an Lexemen erfordern, da man Lexeme für jeden Fluss, jedes Denkmal ''etc.'' in jeder Sprache mit Artikeln bräuchte. Das wären sehr viele Lexeme. Ein intelligenter Funktionsansatz hingegen müsste womöglich eine Vielzahl von Sonderfällen bis hinunter auf die Ebene einzelner Wörter bewältigen, da alle Sprachen Unregelmäßigkeiten aufweisen, was die Implementierungen sehr umfangreich machen würde. Im Prinzip würden jedoch beide Ansätze funktionieren. Eine weitere Lösung besteht, wie so oft, darin, einen Mittelweg zu wählen: Man verwendet eine Funktion, um die Antwort für jene Fälle zu ermitteln, die sich einfach mit einer Funktion ausdrücken lassen, und nutzt Lexeme für die Ausnahmen. Die Funktion würde dann stets zuerst nach einem Lexem suchen und die Funktion selbst nur dann als bestmögliche Annäherung anwenden, wenn kein Lexem gefunden wird. Wo stehen wir derzeit? Wikidata hat über eine Eigenschaft, {{P|P5713}}, die tatsächlich dazu verwendet wird, anzugeben, dass bestimmte Bedeutungen einen bestimmten Artikel erfordern, z. B. für [[:d:Lexeme:L1012744#S1|den Indus]]. All diese Anwendungen auf Wikidata beschränken sich derzeit auf englische Lexeme. Zudem gibt es zwei Funktionen, {{Z|Z32645}} und {{Z|Z32935}}, die beide klären sollen, ob ein Datenobjekt einen bestimmten Artikel benötigt oder nicht; auch hier wiederum nur für Englisch. Wir verfügen also prinzipiell bereits über beide Teile des Puzzles, allerdings scheinen sie nicht in die tatsächliche Verwendung von Funktionen in der Abstrakten Wikipedia integriert zu sein, wie sich ''z. B.'' am [[:abstract:Q243|Artikel über den Eiffelturm]] zeigt. Zu meiner Überraschung rief ich nach dem Freiwilligentreffen an diesem Montag [https://www.cse.chalmers.se/~aarne/ Aarne Ranta] an. Aarne ist der Entwickler von [[:en:Grammatical Framework (programming language)|Grammatical Framework]], einem der weltweit führenden Systeme zur symbolischen Generierung natürlicher Sprache. Er hat mich beraten und seine Arbeit war eine Inspiration für die Abstrakte Wikipedia. Ich sprach ihn also auf dieses spezielle Problem an, und seine erste Reaktion war ein Lachen und er bezeichnete es buchstäblich als eines der schwierigsten Rätsel, die sie je lösen mussten. Das machte mir Mut! Ich möchte daher mit einem Aufruf zum Handeln schließen: Lasst uns uns gemeinsam und über verschiedene relevante Sprachen hinweg einen Moment lang auf dieses Thema konzentrieren, um zu zeigen, dass es sich um ein Problem handelt, das wir angehen und lösen können. Ich bin der Meinung, wenn wir die von Strobilomyces aufgeworfene Herausforderung meistern, die womöglich eine der schwierigsten Fragen für unseren Ansatz zur Generierung natürlicher Sprache darstellt, können wir der Machbarkeit des Gesamtkonzepts weitaus zuversichtlicher entgegensehen. <span id="Recent_Changes_in_the_software"></span> === Letzte Änderungen an der Software === Diese Woche haben wir einige Verbesserungen daran vorgenommen, wie Artikel der Abstrakten Wikipedia und eingebettete Ausgaben von Wikifunctions wikiübergreifend dargestellt werden. <div lang="en" dir="ltr" class="mw-content-ltr"> On Abstract Wikipedia, empty articles now appear as red links in local wikitext and rendered fragments, consistent with how Wikipedia treats pages that have not been written yet ([[:phab:T424310|T424310]]). And when looking up labels for Abstract Wikipedia items, the system now falls back to <code>mul</code> (language-agnostic label) when no language-specific label exists ([[:phab:T427027|T427027]]). </div> <div lang="en" dir="ltr" class="mw-content-ltr"> For embedded Wikifunctions, we fixed a bug that meant previewing embedded Wikifunctions' HTML outputs didn't work except on Wikifunctions.org itself ([[:phab:T426024|T426024]]). </div> <div lang="en" dir="ltr" class="mw-content-ltr"> And as part of wider MediaWiki language support work, we've added [[Z2048]] (<code>sd-deva</code>) as a new [[Z60|Language]], and assigned <code>sd-arab</code> to [[Z1191]], in addition to the existing <code>sd</code> code ([[:phab:T411110|T411110]], [[:phab:T416161|T416161]], [[:phab:T418886|T418886]], and [[:phab:T426332|T426332]]). </div> <div lang="en" dir="ltr" class="mw-content-ltr"> === News in Types: Syntactic tables… but not yet === </div> <div lang="en" dir="ltr" class="mw-content-ltr"> We invite you all to create new and discuss the existing [[Wikifunctions:Type proposals|Type proposals]] so we can keep on creating new Types. Thanks to all the community members contributing to the discussion and writing proposals, making it possible to extend the Wikifunctions to new domains! </div> <div lang="en" dir="ltr" class="mw-content-ltr"> Earlier this week we implemented the [[Wikifunctions:Type proposals/Syntactic table|Syntactic tables]] proposal, but it is still marked as experimental. So just be warned that it might be changed and even deprecated. On creation, the title exposed a bug with the UX for HTML fragments ([[:phab:T429379|T429379]]), which will be fixed next week. Until then, it's difficult to see the Type work. The experimental Type is here: {{Z|Z36462}} </div> <div lang="en" dir="ltr" class="mw-content-ltr"> Initially, I was first planning to implement the proposals for [[Wikifunctions:Type proposals/Semantic unit|Semantic Unit]] and [[Wikifunctions:Type proposals/Syntactic unit|Syntactic Unit]] Types, but after conferring with [[User:Mahir256|Mahir256]], who proposed the Types, it became clear that a number of features on the backend are still missing, so that their implementation at this point in time wouldn’t be useful. More details were discussed in this week’s NLG SIG meeting (see the next section). </div> <div lang="en" dir="ltr" class="mw-content-ltr"> === NLG SIG recording === </div> [[File:Abstract Wikipedia NLG SIG Meeting 2026-06.webm|thumb|<span lang="en" dir="ltr" class="mw-content-ltr">Recording of June 2026 NLG SIG meeting</span>]] <div lang="en" dir="ltr" class="mw-content-ltr"> This week’s [[Wikifunctions:NLG SIG|NLG SIG meeting]] was about discussing [[Special:MyLanguage/Wikifunctions:Status updates/2026-05-15#News in Types: way forward for natural language generation types|the proposed new NLG types]], and was particularly focused on the [[Wikifunctions:Type proposals/Semantic unit|Semantic Unit]] proposal. Thanks to [[User:Mahir256|Mahir]] for presenting the type, demoing tools, and so patiently answering questions. The [[:commons:File:Abstract Wikipedia NLG SIG Meeting 2026-06.webm|recording of the meeting is available on Commons]]. </div> <div lang="en" dir="ltr" class="mw-content-ltr"> === Upcoming events === </div> <div lang="en" dir="ltr" class="mw-content-ltr"> Friday, 19 June 2026 at 18:30 local time, Denny will visit the [https://temporaerhaus.de/ temporärhaus] in Ulm, Germany, in order to introduce Wikidata, Wikifunctions, and Abstract Wikipedia, and discuss with the local community. Thanks to [[User:Hogü-456|Hogü-456]] for organizing the event! </div> <div lang="en" dir="ltr" class="mw-content-ltr"> [[:wikimania:Special:MyLanguage/2026:Wikimania|Wikimania 2026]], the annual main conference for all things Wikimedia, will be in Paris, France from 21–25 July this year. [[User:Mahir256|Mahir256]] will organize a workshop on “[https://wikimedia.eventyay.com/wm/wikimania2026/talk/HYTQBF/ From Abstract Content to Concrete Text with Wikidata Lexemes]” on Friday, 16:00 local time, and we will be running an “[https://wikimedia.eventyay.com/wm/wikimania2026/talk/AKFG8R/ Abstract Wikipedia workshop: Let's create a multi-lingual article!]” on Saturday, 11:00 local time. </div> <div lang="en" dir="ltr" class="mw-content-ltr"> === Fresh Functions weekly: 43 new Functions === </div> <div lang="en" dir="ltr" class="mw-content-ltr"> This week we had 43 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|Z36185}} * {{Z|Z36190}} * {{Z|Z36193}} * {{Z|Z36197}} * {{Z|Z36200}} * {{Z|Z36206}} * {{Z|Z36209}} * {{Z|Z36218}} * {{Z|Z36225}} * {{Z|Z36232}} * {{Z|Z36234}} * {{Z|Z36240}} * {{Z|Z36243}} * {{Z|Z36253}} * {{Z|Z36266}} * {{Z|Z36270}} * {{Z|Z36282}} * {{Z|Z36285}} * {{Z|Z36288}} * {{Z|Z36290}} * {{Z|Z36296}} * {{Z|Z36299}} * {{Z|Z36310}} * {{Z|Z36319}} * {{Z|Z36323}} * {{Z|Z36325}} * {{Z|Z36327}} * {{Z|Z36333}} * {{Z|Z36337}} * {{Z|Z36341}} * {{Z|Z36348}} * {{Z|Z36354}} * {{Z|Z36357}} * {{Z|Z36357}} * {{Z|Z36365}} * {{Z|Z36369}} * {{Z|Z36371}} <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-06-19]] 7xt6i92j58qcxjppy9plmbbh3elcioh 285700 285698 2026-06-22T17:43:52Z Ameisenigel 44 Created page with "In der Abstrakten Wikipedia erscheinen leere Artikel nun als Rotlinks im lokalen Wikitext sowie in gerenderten Fragmenten, übereinstimmend damit, wie Wikipedia mit noch nicht erstellten Seiten verfährt ($1). Zudem greift das System beim Abrufen von Bezeichnungen für Objekte der Abstrakten Wikipedia auf $3 (sprachunabhängige Bezeichnung) zurück, sofern keine sprachspezifische Bezeichnung vorliegt ($2)." 285700 wikitext text/x-wiki <languages/> {{Wikifunctions updates | prevlabel = Vorheriges Update | prev = 2026-06-12 | nextlabel = Nächstes Update | next = }} <span id="The_or_not_the,_this_is_(the?)_question"></span> === Der/die/das oder nicht, (das?) ist hier die Frage === Beim Freiwilligentreffen der letzten Woche gab es eine lebhafte Diskussion zu einer bestimmten Frage ([[:commons:File:Abstract Wikipedia Volunteer Corner 2026-06.webm|Aufzeichnung auf Commons verfügbar]]), eingebracht von [[User:Strobilomyces|Strobilomyces]]: Wenn man einen Satz der Form ''“X ist ein Y.”'' bilden möchte, erfordert das X manchmal einen bestimmten Artikel “der/die/das” und manchmal nicht. Hier sind einige Beispiele: * ''Paris is a city.'' * ''The Seine is a river.'' * ''Lake Superior is a lake.'' * ''The Atlantic is an ocean.'' * ''The Eiffel Tower is a monument.'' * ''Westminster Abbey is a monument.'' Das Gleiche gilt für andere Sprachen, die über bestimmte Artikel verfügen, wie zum Beispiel Spanisch, Französisch oder Deutsch. Doch jede Sprache hat ihre eigenen Regeln für den Artikel. Hier ist ein Beispielsatz in vier Sprachen: * ''Latin is a language.'' * ''El latín es un idioma.'' * ''Le latin est une langue.'' * ''Latein ist eine Sprache.'' Wie geht man mit dieser Art von Problem um? Es gibt im Prinzip zwei extreme Lösungen, die – prinzipiell – beide funktionieren: # Abbilden, ob das jeweilige Substantiv in den Lexemen von Wikidata den bestimmten Artikel erfordert. # Eine intelligente Funktion implementieren, die ermittelt, ob ein Substantiv einen bestimmten Artikel benötigt. Beide Ansätze bringen ihre eigenen Herausforderungen mit sich: Der Ansatz mit den Lexemen würde eine enorme Anzahl an Lexemen erfordern, da man Lexeme für jeden Fluss, jedes Denkmal ''etc.'' in jeder Sprache mit Artikeln bräuchte. Das wären sehr viele Lexeme. Ein intelligenter Funktionsansatz hingegen müsste womöglich eine Vielzahl von Sonderfällen bis hinunter auf die Ebene einzelner Wörter bewältigen, da alle Sprachen Unregelmäßigkeiten aufweisen, was die Implementierungen sehr umfangreich machen würde. Im Prinzip würden jedoch beide Ansätze funktionieren. Eine weitere Lösung besteht, wie so oft, darin, einen Mittelweg zu wählen: Man verwendet eine Funktion, um die Antwort für jene Fälle zu ermitteln, die sich einfach mit einer Funktion ausdrücken lassen, und nutzt Lexeme für die Ausnahmen. Die Funktion würde dann stets zuerst nach einem Lexem suchen und die Funktion selbst nur dann als bestmögliche Annäherung anwenden, wenn kein Lexem gefunden wird. Wo stehen wir derzeit? Wikidata hat über eine Eigenschaft, {{P|P5713}}, die tatsächlich dazu verwendet wird, anzugeben, dass bestimmte Bedeutungen einen bestimmten Artikel erfordern, z. B. für [[:d:Lexeme:L1012744#S1|den Indus]]. All diese Anwendungen auf Wikidata beschränken sich derzeit auf englische Lexeme. Zudem gibt es zwei Funktionen, {{Z|Z32645}} und {{Z|Z32935}}, die beide klären sollen, ob ein Datenobjekt einen bestimmten Artikel benötigt oder nicht; auch hier wiederum nur für Englisch. Wir verfügen also prinzipiell bereits über beide Teile des Puzzles, allerdings scheinen sie nicht in die tatsächliche Verwendung von Funktionen in der Abstrakten Wikipedia integriert zu sein, wie sich ''z. B.'' am [[:abstract:Q243|Artikel über den Eiffelturm]] zeigt. Zu meiner Überraschung rief ich nach dem Freiwilligentreffen an diesem Montag [https://www.cse.chalmers.se/~aarne/ Aarne Ranta] an. Aarne ist der Entwickler von [[:en:Grammatical Framework (programming language)|Grammatical Framework]], einem der weltweit führenden Systeme zur symbolischen Generierung natürlicher Sprache. Er hat mich beraten und seine Arbeit war eine Inspiration für die Abstrakte Wikipedia. Ich sprach ihn also auf dieses spezielle Problem an, und seine erste Reaktion war ein Lachen und er bezeichnete es buchstäblich als eines der schwierigsten Rätsel, die sie je lösen mussten. Das machte mir Mut! Ich möchte daher mit einem Aufruf zum Handeln schließen: Lasst uns uns gemeinsam und über verschiedene relevante Sprachen hinweg einen Moment lang auf dieses Thema konzentrieren, um zu zeigen, dass es sich um ein Problem handelt, das wir angehen und lösen können. Ich bin der Meinung, wenn wir die von Strobilomyces aufgeworfene Herausforderung meistern, die womöglich eine der schwierigsten Fragen für unseren Ansatz zur Generierung natürlicher Sprache darstellt, können wir der Machbarkeit des Gesamtkonzepts weitaus zuversichtlicher entgegensehen. <span id="Recent_Changes_in_the_software"></span> === Letzte Änderungen an der Software === Diese Woche haben wir einige Verbesserungen daran vorgenommen, wie Artikel der Abstrakten Wikipedia und eingebettete Ausgaben von Wikifunctions wikiübergreifend dargestellt werden. In der Abstrakten Wikipedia erscheinen leere Artikel nun als Rotlinks im lokalen Wikitext sowie in gerenderten Fragmenten, übereinstimmend damit, wie Wikipedia mit noch nicht erstellten Seiten verfährt ([[:phab:T424310|T424310]]). Zudem greift das System beim Abrufen von Bezeichnungen für Objekte der Abstrakten Wikipedia auf <code>mul</code> (sprachunabhängige Bezeichnung) zurück, sofern keine sprachspezifische Bezeichnung vorliegt ([[:phab:T427027|T427027]]). <div lang="en" dir="ltr" class="mw-content-ltr"> For embedded Wikifunctions, we fixed a bug that meant previewing embedded Wikifunctions' HTML outputs didn't work except on Wikifunctions.org itself ([[:phab:T426024|T426024]]). </div> <div lang="en" dir="ltr" class="mw-content-ltr"> And as part of wider MediaWiki language support work, we've added [[Z2048]] (<code>sd-deva</code>) as a new [[Z60|Language]], and assigned <code>sd-arab</code> to [[Z1191]], in addition to the existing <code>sd</code> code ([[:phab:T411110|T411110]], [[:phab:T416161|T416161]], [[:phab:T418886|T418886]], and [[:phab:T426332|T426332]]). </div> <div lang="en" dir="ltr" class="mw-content-ltr"> === News in Types: Syntactic tables… but not yet === </div> <div lang="en" dir="ltr" class="mw-content-ltr"> We invite you all to create new and discuss the existing [[Wikifunctions:Type proposals|Type proposals]] so we can keep on creating new Types. Thanks to all the community members contributing to the discussion and writing proposals, making it possible to extend the Wikifunctions to new domains! </div> <div lang="en" dir="ltr" class="mw-content-ltr"> Earlier this week we implemented the [[Wikifunctions:Type proposals/Syntactic table|Syntactic tables]] proposal, but it is still marked as experimental. So just be warned that it might be changed and even deprecated. On creation, the title exposed a bug with the UX for HTML fragments ([[:phab:T429379|T429379]]), which will be fixed next week. Until then, it's difficult to see the Type work. The experimental Type is here: {{Z|Z36462}} </div> <div lang="en" dir="ltr" class="mw-content-ltr"> Initially, I was first planning to implement the proposals for [[Wikifunctions:Type proposals/Semantic unit|Semantic Unit]] and [[Wikifunctions:Type proposals/Syntactic unit|Syntactic Unit]] Types, but after conferring with [[User:Mahir256|Mahir256]], who proposed the Types, it became clear that a number of features on the backend are still missing, so that their implementation at this point in time wouldn’t be useful. More details were discussed in this week’s NLG SIG meeting (see the next section). </div> <div lang="en" dir="ltr" class="mw-content-ltr"> === NLG SIG recording === </div> [[File:Abstract Wikipedia NLG SIG Meeting 2026-06.webm|thumb|<span lang="en" dir="ltr" class="mw-content-ltr">Recording of June 2026 NLG SIG meeting</span>]] <div lang="en" dir="ltr" class="mw-content-ltr"> This week’s [[Wikifunctions:NLG SIG|NLG SIG meeting]] was about discussing [[Special:MyLanguage/Wikifunctions:Status updates/2026-05-15#News in Types: way forward for natural language generation types|the proposed new NLG types]], and was particularly focused on the [[Wikifunctions:Type proposals/Semantic unit|Semantic Unit]] proposal. Thanks to [[User:Mahir256|Mahir]] for presenting the type, demoing tools, and so patiently answering questions. The [[:commons:File:Abstract Wikipedia NLG SIG Meeting 2026-06.webm|recording of the meeting is available on Commons]]. </div> <div lang="en" dir="ltr" class="mw-content-ltr"> === Upcoming events === </div> <div lang="en" dir="ltr" class="mw-content-ltr"> Friday, 19 June 2026 at 18:30 local time, Denny will visit the [https://temporaerhaus.de/ temporärhaus] in Ulm, Germany, in order to introduce Wikidata, Wikifunctions, and Abstract Wikipedia, and discuss with the local community. Thanks to [[User:Hogü-456|Hogü-456]] for organizing the event! </div> <div lang="en" dir="ltr" class="mw-content-ltr"> [[:wikimania:Special:MyLanguage/2026:Wikimania|Wikimania 2026]], the annual main conference for all things Wikimedia, will be in Paris, France from 21–25 July this year. [[User:Mahir256|Mahir256]] will organize a workshop on “[https://wikimedia.eventyay.com/wm/wikimania2026/talk/HYTQBF/ From Abstract Content to Concrete Text with Wikidata Lexemes]” on Friday, 16:00 local time, and we will be running an “[https://wikimedia.eventyay.com/wm/wikimania2026/talk/AKFG8R/ Abstract Wikipedia workshop: Let's create a multi-lingual article!]” on Saturday, 11:00 local time. </div> <div lang="en" dir="ltr" class="mw-content-ltr"> === Fresh Functions weekly: 43 new Functions === </div> <div lang="en" dir="ltr" class="mw-content-ltr"> This week we had 43 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|Z36185}} * {{Z|Z36190}} * {{Z|Z36193}} * {{Z|Z36197}} * {{Z|Z36200}} * {{Z|Z36206}} * {{Z|Z36209}} * {{Z|Z36218}} * {{Z|Z36225}} * {{Z|Z36232}} * {{Z|Z36234}} * {{Z|Z36240}} * {{Z|Z36243}} * {{Z|Z36253}} * {{Z|Z36266}} * {{Z|Z36270}} * {{Z|Z36282}} * {{Z|Z36285}} * {{Z|Z36288}} * {{Z|Z36290}} * {{Z|Z36296}} * {{Z|Z36299}} * {{Z|Z36310}} * {{Z|Z36319}} * {{Z|Z36323}} * {{Z|Z36325}} * {{Z|Z36327}} * {{Z|Z36333}} * {{Z|Z36337}} * {{Z|Z36341}} * {{Z|Z36348}} * {{Z|Z36354}} * {{Z|Z36357}} * {{Z|Z36357}} * {{Z|Z36365}} * {{Z|Z36369}} * {{Z|Z36371}} <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-06-19]] 31nlgv2ss2fx1fxp9ba7pmwr6emk0ud 285702 285700 2026-06-22T17:44:32Z Ameisenigel 44 Created page with "Für eingebettete Wikifunctions haben wir einen Fehler behoben, der dazu führte, dass die Vorschau der HTML-Ausgabe eingebetteter Wikifunctions – außer auf Wikifunctions.org selbst – nicht funktionierte ($1)." 285702 wikitext text/x-wiki <languages/> {{Wikifunctions updates | prevlabel = Vorheriges Update | prev = 2026-06-12 | nextlabel = Nächstes Update | next = }} <span id="The_or_not_the,_this_is_(the?)_question"></span> === Der/die/das oder nicht, (das?) ist hier die Frage === Beim Freiwilligentreffen der letzten Woche gab es eine lebhafte Diskussion zu einer bestimmten Frage ([[:commons:File:Abstract Wikipedia Volunteer Corner 2026-06.webm|Aufzeichnung auf Commons verfügbar]]), eingebracht von [[User:Strobilomyces|Strobilomyces]]: Wenn man einen Satz der Form ''“X ist ein Y.”'' bilden möchte, erfordert das X manchmal einen bestimmten Artikel “der/die/das” und manchmal nicht. Hier sind einige Beispiele: * ''Paris is a city.'' * ''The Seine is a river.'' * ''Lake Superior is a lake.'' * ''The Atlantic is an ocean.'' * ''The Eiffel Tower is a monument.'' * ''Westminster Abbey is a monument.'' Das Gleiche gilt für andere Sprachen, die über bestimmte Artikel verfügen, wie zum Beispiel Spanisch, Französisch oder Deutsch. Doch jede Sprache hat ihre eigenen Regeln für den Artikel. Hier ist ein Beispielsatz in vier Sprachen: * ''Latin is a language.'' * ''El latín es un idioma.'' * ''Le latin est une langue.'' * ''Latein ist eine Sprache.'' Wie geht man mit dieser Art von Problem um? Es gibt im Prinzip zwei extreme Lösungen, die – prinzipiell – beide funktionieren: # Abbilden, ob das jeweilige Substantiv in den Lexemen von Wikidata den bestimmten Artikel erfordert. # Eine intelligente Funktion implementieren, die ermittelt, ob ein Substantiv einen bestimmten Artikel benötigt. Beide Ansätze bringen ihre eigenen Herausforderungen mit sich: Der Ansatz mit den Lexemen würde eine enorme Anzahl an Lexemen erfordern, da man Lexeme für jeden Fluss, jedes Denkmal ''etc.'' in jeder Sprache mit Artikeln bräuchte. Das wären sehr viele Lexeme. Ein intelligenter Funktionsansatz hingegen müsste womöglich eine Vielzahl von Sonderfällen bis hinunter auf die Ebene einzelner Wörter bewältigen, da alle Sprachen Unregelmäßigkeiten aufweisen, was die Implementierungen sehr umfangreich machen würde. Im Prinzip würden jedoch beide Ansätze funktionieren. Eine weitere Lösung besteht, wie so oft, darin, einen Mittelweg zu wählen: Man verwendet eine Funktion, um die Antwort für jene Fälle zu ermitteln, die sich einfach mit einer Funktion ausdrücken lassen, und nutzt Lexeme für die Ausnahmen. Die Funktion würde dann stets zuerst nach einem Lexem suchen und die Funktion selbst nur dann als bestmögliche Annäherung anwenden, wenn kein Lexem gefunden wird. Wo stehen wir derzeit? Wikidata hat über eine Eigenschaft, {{P|P5713}}, die tatsächlich dazu verwendet wird, anzugeben, dass bestimmte Bedeutungen einen bestimmten Artikel erfordern, z. B. für [[:d:Lexeme:L1012744#S1|den Indus]]. All diese Anwendungen auf Wikidata beschränken sich derzeit auf englische Lexeme. Zudem gibt es zwei Funktionen, {{Z|Z32645}} und {{Z|Z32935}}, die beide klären sollen, ob ein Datenobjekt einen bestimmten Artikel benötigt oder nicht; auch hier wiederum nur für Englisch. Wir verfügen also prinzipiell bereits über beide Teile des Puzzles, allerdings scheinen sie nicht in die tatsächliche Verwendung von Funktionen in der Abstrakten Wikipedia integriert zu sein, wie sich ''z. B.'' am [[:abstract:Q243|Artikel über den Eiffelturm]] zeigt. Zu meiner Überraschung rief ich nach dem Freiwilligentreffen an diesem Montag [https://www.cse.chalmers.se/~aarne/ Aarne Ranta] an. Aarne ist der Entwickler von [[:en:Grammatical Framework (programming language)|Grammatical Framework]], einem der weltweit führenden Systeme zur symbolischen Generierung natürlicher Sprache. Er hat mich beraten und seine Arbeit war eine Inspiration für die Abstrakte Wikipedia. Ich sprach ihn also auf dieses spezielle Problem an, und seine erste Reaktion war ein Lachen und er bezeichnete es buchstäblich als eines der schwierigsten Rätsel, die sie je lösen mussten. Das machte mir Mut! Ich möchte daher mit einem Aufruf zum Handeln schließen: Lasst uns uns gemeinsam und über verschiedene relevante Sprachen hinweg einen Moment lang auf dieses Thema konzentrieren, um zu zeigen, dass es sich um ein Problem handelt, das wir angehen und lösen können. Ich bin der Meinung, wenn wir die von Strobilomyces aufgeworfene Herausforderung meistern, die womöglich eine der schwierigsten Fragen für unseren Ansatz zur Generierung natürlicher Sprache darstellt, können wir der Machbarkeit des Gesamtkonzepts weitaus zuversichtlicher entgegensehen. <span id="Recent_Changes_in_the_software"></span> === Letzte Änderungen an der Software === Diese Woche haben wir einige Verbesserungen daran vorgenommen, wie Artikel der Abstrakten Wikipedia und eingebettete Ausgaben von Wikifunctions wikiübergreifend dargestellt werden. In der Abstrakten Wikipedia erscheinen leere Artikel nun als Rotlinks im lokalen Wikitext sowie in gerenderten Fragmenten, übereinstimmend damit, wie Wikipedia mit noch nicht erstellten Seiten verfährt ([[:phab:T424310|T424310]]). Zudem greift das System beim Abrufen von Bezeichnungen für Objekte der Abstrakten Wikipedia auf <code>mul</code> (sprachunabhängige Bezeichnung) zurück, sofern keine sprachspezifische Bezeichnung vorliegt ([[:phab:T427027|T427027]]). Für eingebettete Wikifunctions haben wir einen Fehler behoben, der dazu führte, dass die Vorschau der HTML-Ausgabe eingebetteter Wikifunctions – außer auf Wikifunctions.org selbst – nicht funktionierte ([[:phab:T426024|T426024]]). <div lang="en" dir="ltr" class="mw-content-ltr"> And as part of wider MediaWiki language support work, we've added [[Z2048]] (<code>sd-deva</code>) as a new [[Z60|Language]], and assigned <code>sd-arab</code> to [[Z1191]], in addition to the existing <code>sd</code> code ([[:phab:T411110|T411110]], [[:phab:T416161|T416161]], [[:phab:T418886|T418886]], and [[:phab:T426332|T426332]]). </div> <div lang="en" dir="ltr" class="mw-content-ltr"> === News in Types: Syntactic tables… but not yet === </div> <div lang="en" dir="ltr" class="mw-content-ltr"> We invite you all to create new and discuss the existing [[Wikifunctions:Type proposals|Type proposals]] so we can keep on creating new Types. Thanks to all the community members contributing to the discussion and writing proposals, making it possible to extend the Wikifunctions to new domains! </div> <div lang="en" dir="ltr" class="mw-content-ltr"> Earlier this week we implemented the [[Wikifunctions:Type proposals/Syntactic table|Syntactic tables]] proposal, but it is still marked as experimental. So just be warned that it might be changed and even deprecated. On creation, the title exposed a bug with the UX for HTML fragments ([[:phab:T429379|T429379]]), which will be fixed next week. Until then, it's difficult to see the Type work. The experimental Type is here: {{Z|Z36462}} </div> <div lang="en" dir="ltr" class="mw-content-ltr"> Initially, I was first planning to implement the proposals for [[Wikifunctions:Type proposals/Semantic unit|Semantic Unit]] and [[Wikifunctions:Type proposals/Syntactic unit|Syntactic Unit]] Types, but after conferring with [[User:Mahir256|Mahir256]], who proposed the Types, it became clear that a number of features on the backend are still missing, so that their implementation at this point in time wouldn’t be useful. More details were discussed in this week’s NLG SIG meeting (see the next section). </div> <div lang="en" dir="ltr" class="mw-content-ltr"> === NLG SIG recording === </div> [[File:Abstract Wikipedia NLG SIG Meeting 2026-06.webm|thumb|<span lang="en" dir="ltr" class="mw-content-ltr">Recording of June 2026 NLG SIG meeting</span>]] <div lang="en" dir="ltr" class="mw-content-ltr"> This week’s [[Wikifunctions:NLG SIG|NLG SIG meeting]] was about discussing [[Special:MyLanguage/Wikifunctions:Status updates/2026-05-15#News in Types: way forward for natural language generation types|the proposed new NLG types]], and was particularly focused on the [[Wikifunctions:Type proposals/Semantic unit|Semantic Unit]] proposal. Thanks to [[User:Mahir256|Mahir]] for presenting the type, demoing tools, and so patiently answering questions. The [[:commons:File:Abstract Wikipedia NLG SIG Meeting 2026-06.webm|recording of the meeting is available on Commons]]. </div> <div lang="en" dir="ltr" class="mw-content-ltr"> === Upcoming events === </div> <div lang="en" dir="ltr" class="mw-content-ltr"> Friday, 19 June 2026 at 18:30 local time, Denny will visit the [https://temporaerhaus.de/ temporärhaus] in Ulm, Germany, in order to introduce Wikidata, Wikifunctions, and Abstract Wikipedia, and discuss with the local community. Thanks to [[User:Hogü-456|Hogü-456]] for organizing the event! </div> <div lang="en" dir="ltr" class="mw-content-ltr"> [[:wikimania:Special:MyLanguage/2026:Wikimania|Wikimania 2026]], the annual main conference for all things Wikimedia, will be in Paris, France from 21–25 July this year. [[User:Mahir256|Mahir256]] will organize a workshop on “[https://wikimedia.eventyay.com/wm/wikimania2026/talk/HYTQBF/ From Abstract Content to Concrete Text with Wikidata Lexemes]” on Friday, 16:00 local time, and we will be running an “[https://wikimedia.eventyay.com/wm/wikimania2026/talk/AKFG8R/ Abstract Wikipedia workshop: Let's create a multi-lingual article!]” on Saturday, 11:00 local time. </div> <div lang="en" dir="ltr" class="mw-content-ltr"> === Fresh Functions weekly: 43 new Functions === </div> <div lang="en" dir="ltr" class="mw-content-ltr"> This week we had 43 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|Z36185}} * {{Z|Z36190}} * {{Z|Z36193}} * {{Z|Z36197}} * {{Z|Z36200}} * {{Z|Z36206}} * {{Z|Z36209}} * {{Z|Z36218}} * {{Z|Z36225}} * {{Z|Z36232}} * {{Z|Z36234}} * {{Z|Z36240}} * {{Z|Z36243}} * {{Z|Z36253}} * {{Z|Z36266}} * {{Z|Z36270}} * {{Z|Z36282}} * {{Z|Z36285}} * {{Z|Z36288}} * {{Z|Z36290}} * {{Z|Z36296}} * {{Z|Z36299}} * {{Z|Z36310}} * {{Z|Z36319}} * {{Z|Z36323}} * {{Z|Z36325}} * {{Z|Z36327}} * {{Z|Z36333}} * {{Z|Z36337}} * {{Z|Z36341}} * {{Z|Z36348}} * {{Z|Z36354}} * {{Z|Z36357}} * {{Z|Z36357}} * {{Z|Z36365}} * {{Z|Z36369}} * {{Z|Z36371}} <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-06-19]] phsxn80al8uvu9rq7x4p06f5hy85qj3 285704 285702 2026-06-22T17:46:00Z Ameisenigel 44 Created page with "Im Rahmen der allgemeinen Arbeiten zur Sprachunterstützung in MediaWiki haben wir $5 ($6) als neue [[$7|Sprache]] hinzugefügt und $8 an $9 zugewiesen, zusätzlich zu dem bereits vorhandenen Code $10 ($1, $2, $3 und $4)." 285704 wikitext text/x-wiki <languages/> {{Wikifunctions updates | prevlabel = Vorheriges Update | prev = 2026-06-12 | nextlabel = Nächstes Update | next = }} <span id="The_or_not_the,_this_is_(the?)_question"></span> === Der/die/das oder nicht, (das?) ist hier die Frage === Beim Freiwilligentreffen der letzten Woche gab es eine lebhafte Diskussion zu einer bestimmten Frage ([[:commons:File:Abstract Wikipedia Volunteer Corner 2026-06.webm|Aufzeichnung auf Commons verfügbar]]), eingebracht von [[User:Strobilomyces|Strobilomyces]]: Wenn man einen Satz der Form ''“X ist ein Y.”'' bilden möchte, erfordert das X manchmal einen bestimmten Artikel “der/die/das” und manchmal nicht. Hier sind einige Beispiele: * ''Paris is a city.'' * ''The Seine is a river.'' * ''Lake Superior is a lake.'' * ''The Atlantic is an ocean.'' * ''The Eiffel Tower is a monument.'' * ''Westminster Abbey is a monument.'' Das Gleiche gilt für andere Sprachen, die über bestimmte Artikel verfügen, wie zum Beispiel Spanisch, Französisch oder Deutsch. Doch jede Sprache hat ihre eigenen Regeln für den Artikel. Hier ist ein Beispielsatz in vier Sprachen: * ''Latin is a language.'' * ''El latín es un idioma.'' * ''Le latin est une langue.'' * ''Latein ist eine Sprache.'' Wie geht man mit dieser Art von Problem um? Es gibt im Prinzip zwei extreme Lösungen, die – prinzipiell – beide funktionieren: # Abbilden, ob das jeweilige Substantiv in den Lexemen von Wikidata den bestimmten Artikel erfordert. # Eine intelligente Funktion implementieren, die ermittelt, ob ein Substantiv einen bestimmten Artikel benötigt. Beide Ansätze bringen ihre eigenen Herausforderungen mit sich: Der Ansatz mit den Lexemen würde eine enorme Anzahl an Lexemen erfordern, da man Lexeme für jeden Fluss, jedes Denkmal ''etc.'' in jeder Sprache mit Artikeln bräuchte. Das wären sehr viele Lexeme. Ein intelligenter Funktionsansatz hingegen müsste womöglich eine Vielzahl von Sonderfällen bis hinunter auf die Ebene einzelner Wörter bewältigen, da alle Sprachen Unregelmäßigkeiten aufweisen, was die Implementierungen sehr umfangreich machen würde. Im Prinzip würden jedoch beide Ansätze funktionieren. Eine weitere Lösung besteht, wie so oft, darin, einen Mittelweg zu wählen: Man verwendet eine Funktion, um die Antwort für jene Fälle zu ermitteln, die sich einfach mit einer Funktion ausdrücken lassen, und nutzt Lexeme für die Ausnahmen. Die Funktion würde dann stets zuerst nach einem Lexem suchen und die Funktion selbst nur dann als bestmögliche Annäherung anwenden, wenn kein Lexem gefunden wird. Wo stehen wir derzeit? Wikidata hat über eine Eigenschaft, {{P|P5713}}, die tatsächlich dazu verwendet wird, anzugeben, dass bestimmte Bedeutungen einen bestimmten Artikel erfordern, z. B. für [[:d:Lexeme:L1012744#S1|den Indus]]. All diese Anwendungen auf Wikidata beschränken sich derzeit auf englische Lexeme. Zudem gibt es zwei Funktionen, {{Z|Z32645}} und {{Z|Z32935}}, die beide klären sollen, ob ein Datenobjekt einen bestimmten Artikel benötigt oder nicht; auch hier wiederum nur für Englisch. Wir verfügen also prinzipiell bereits über beide Teile des Puzzles, allerdings scheinen sie nicht in die tatsächliche Verwendung von Funktionen in der Abstrakten Wikipedia integriert zu sein, wie sich ''z. B.'' am [[:abstract:Q243|Artikel über den Eiffelturm]] zeigt. Zu meiner Überraschung rief ich nach dem Freiwilligentreffen an diesem Montag [https://www.cse.chalmers.se/~aarne/ Aarne Ranta] an. Aarne ist der Entwickler von [[:en:Grammatical Framework (programming language)|Grammatical Framework]], einem der weltweit führenden Systeme zur symbolischen Generierung natürlicher Sprache. Er hat mich beraten und seine Arbeit war eine Inspiration für die Abstrakte Wikipedia. Ich sprach ihn also auf dieses spezielle Problem an, und seine erste Reaktion war ein Lachen und er bezeichnete es buchstäblich als eines der schwierigsten Rätsel, die sie je lösen mussten. Das machte mir Mut! Ich möchte daher mit einem Aufruf zum Handeln schließen: Lasst uns uns gemeinsam und über verschiedene relevante Sprachen hinweg einen Moment lang auf dieses Thema konzentrieren, um zu zeigen, dass es sich um ein Problem handelt, das wir angehen und lösen können. Ich bin der Meinung, wenn wir die von Strobilomyces aufgeworfene Herausforderung meistern, die womöglich eine der schwierigsten Fragen für unseren Ansatz zur Generierung natürlicher Sprache darstellt, können wir der Machbarkeit des Gesamtkonzepts weitaus zuversichtlicher entgegensehen. <span id="Recent_Changes_in_the_software"></span> === Letzte Änderungen an der Software === Diese Woche haben wir einige Verbesserungen daran vorgenommen, wie Artikel der Abstrakten Wikipedia und eingebettete Ausgaben von Wikifunctions wikiübergreifend dargestellt werden. In der Abstrakten Wikipedia erscheinen leere Artikel nun als Rotlinks im lokalen Wikitext sowie in gerenderten Fragmenten, übereinstimmend damit, wie Wikipedia mit noch nicht erstellten Seiten verfährt ([[:phab:T424310|T424310]]). Zudem greift das System beim Abrufen von Bezeichnungen für Objekte der Abstrakten Wikipedia auf <code>mul</code> (sprachunabhängige Bezeichnung) zurück, sofern keine sprachspezifische Bezeichnung vorliegt ([[:phab:T427027|T427027]]). Für eingebettete Wikifunctions haben wir einen Fehler behoben, der dazu führte, dass die Vorschau der HTML-Ausgabe eingebetteter Wikifunctions – außer auf Wikifunctions.org selbst – nicht funktionierte ([[:phab:T426024|T426024]]). Im Rahmen der allgemeinen Arbeiten zur Sprachunterstützung in MediaWiki haben wir [[Z2048]] (<code>sd-deva</code>) als neue [[Z60|Sprache]] hinzugefügt und <code>sd-arab</code> an [[Z1191]] zugewiesen, zusätzlich zu dem bereits vorhandenen Code <code>sd</code> ([[:phab:T411110|T411110]], [[:phab:T416161|T416161]], [[:phab:T418886|T418886]] und [[:phab:T426332|T426332]]). <div lang="en" dir="ltr" class="mw-content-ltr"> === News in Types: Syntactic tables… but not yet === </div> <div lang="en" dir="ltr" class="mw-content-ltr"> We invite you all to create new and discuss the existing [[Wikifunctions:Type proposals|Type proposals]] so we can keep on creating new Types. Thanks to all the community members contributing to the discussion and writing proposals, making it possible to extend the Wikifunctions to new domains! </div> <div lang="en" dir="ltr" class="mw-content-ltr"> Earlier this week we implemented the [[Wikifunctions:Type proposals/Syntactic table|Syntactic tables]] proposal, but it is still marked as experimental. So just be warned that it might be changed and even deprecated. On creation, the title exposed a bug with the UX for HTML fragments ([[:phab:T429379|T429379]]), which will be fixed next week. Until then, it's difficult to see the Type work. The experimental Type is here: {{Z|Z36462}} </div> <div lang="en" dir="ltr" class="mw-content-ltr"> Initially, I was first planning to implement the proposals for [[Wikifunctions:Type proposals/Semantic unit|Semantic Unit]] and [[Wikifunctions:Type proposals/Syntactic unit|Syntactic Unit]] Types, but after conferring with [[User:Mahir256|Mahir256]], who proposed the Types, it became clear that a number of features on the backend are still missing, so that their implementation at this point in time wouldn’t be useful. More details were discussed in this week’s NLG SIG meeting (see the next section). </div> <div lang="en" dir="ltr" class="mw-content-ltr"> === NLG SIG recording === </div> [[File:Abstract Wikipedia NLG SIG Meeting 2026-06.webm|thumb|<span lang="en" dir="ltr" class="mw-content-ltr">Recording of June 2026 NLG SIG meeting</span>]] <div lang="en" dir="ltr" class="mw-content-ltr"> This week’s [[Wikifunctions:NLG SIG|NLG SIG meeting]] was about discussing [[Special:MyLanguage/Wikifunctions:Status updates/2026-05-15#News in Types: way forward for natural language generation types|the proposed new NLG types]], and was particularly focused on the [[Wikifunctions:Type proposals/Semantic unit|Semantic Unit]] proposal. Thanks to [[User:Mahir256|Mahir]] for presenting the type, demoing tools, and so patiently answering questions. The [[:commons:File:Abstract Wikipedia NLG SIG Meeting 2026-06.webm|recording of the meeting is available on Commons]]. </div> <div lang="en" dir="ltr" class="mw-content-ltr"> === Upcoming events === </div> <div lang="en" dir="ltr" class="mw-content-ltr"> Friday, 19 June 2026 at 18:30 local time, Denny will visit the [https://temporaerhaus.de/ temporärhaus] in Ulm, Germany, in order to introduce Wikidata, Wikifunctions, and Abstract Wikipedia, and discuss with the local community. Thanks to [[User:Hogü-456|Hogü-456]] for organizing the event! </div> <div lang="en" dir="ltr" class="mw-content-ltr"> [[:wikimania:Special:MyLanguage/2026:Wikimania|Wikimania 2026]], the annual main conference for all things Wikimedia, will be in Paris, France from 21–25 July this year. [[User:Mahir256|Mahir256]] will organize a workshop on “[https://wikimedia.eventyay.com/wm/wikimania2026/talk/HYTQBF/ From Abstract Content to Concrete Text with Wikidata Lexemes]” on Friday, 16:00 local time, and we will be running an “[https://wikimedia.eventyay.com/wm/wikimania2026/talk/AKFG8R/ Abstract Wikipedia workshop: Let's create a multi-lingual article!]” on Saturday, 11:00 local time. </div> <div lang="en" dir="ltr" class="mw-content-ltr"> === Fresh Functions weekly: 43 new Functions === </div> <div lang="en" dir="ltr" class="mw-content-ltr"> This week we had 43 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|Z36185}} * {{Z|Z36190}} * {{Z|Z36193}} * {{Z|Z36197}} * {{Z|Z36200}} * {{Z|Z36206}} * {{Z|Z36209}} * {{Z|Z36218}} * {{Z|Z36225}} * {{Z|Z36232}} * {{Z|Z36234}} * {{Z|Z36240}} * {{Z|Z36243}} * {{Z|Z36253}} * {{Z|Z36266}} * {{Z|Z36270}} * {{Z|Z36282}} * {{Z|Z36285}} * {{Z|Z36288}} * {{Z|Z36290}} * {{Z|Z36296}} * {{Z|Z36299}} * {{Z|Z36310}} * {{Z|Z36319}} * {{Z|Z36323}} * {{Z|Z36325}} * {{Z|Z36327}} * {{Z|Z36333}} * {{Z|Z36337}} * {{Z|Z36341}} * {{Z|Z36348}} * {{Z|Z36354}} * {{Z|Z36357}} * {{Z|Z36357}} * {{Z|Z36365}} * {{Z|Z36369}} * {{Z|Z36371}} <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-06-19]] 7yih0k1xt6bo4a34udt66t81tnmfbh3 Z36680 0 86232 285572 285232 2026-06-22T12:03:05Z Denny 81 285572 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36680" }, "Z2K2": { "Z1K1": "Z20", "Z20K1": "Z36656", "Z20K2": { "Z1K1": "Z7", "Z7K1": "Z36656", "Z36656K1": [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q110786" } ], "Z36656K2": [ "Z89", { "Z1K1": "Z89", "Z89K1": "child" } ] }, "Z20K3": { "Z1K1": "Z7", "Z7K1": "Z36670", "Z36670K2": { "Z1K1": "Z36463", "Z36463K1": [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q110786" } ], "Z36463K2": [ "Z89", { "Z1K1": "Z89", "Z89K1": "child" } ] } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "a child is a child" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } 8oz25qafu6zndnfrfyi1tbsdo3gef9f Z36681 0 86233 285573 285234 2026-06-22T12:03:38Z Denny 81 285573 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36681" }, "Z2K2": { "Z1K1": "Z20", "Z20K1": "Z36656", "Z20K2": { "Z1K1": "Z7", "Z7K1": "Z36656", "Z36656K1": [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q110786" }, { "Z1K1": "Z6091", "Z6091K1": "Q131105" } ], "Z36656K2": [ "Z89", { "Z1K1": "Z89", "Z89K1": "Kind" } ] }, "Z20K3": { "Z1K1": "Z7", "Z7K1": "Z36670", "Z36670K2": { "Z1K1": "Z36463", "Z36463K1": [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q131105" }, { "Z1K1": "Z6091", "Z6091K1": "Q110786" } ], "Z36463K2": [ "Z89", { "Z1K1": "Z89", "Z89K1": "Kind" } ] } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Kind is Kind" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } no2l7kgs7egyu2qt3vmxpgd4ughz7sh Z36698 0 86260 285599 285414 2026-06-22T12:22:07Z Denny 81 285599 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36698" }, "Z2K2": { "Z1K1": "Z20", "Z20K1": "Z36660", "Z20K2": { "Z1K1": "Z7", "Z7K1": "Z36660", "Z36660K1": [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q110786" }, { "Z1K1": "Z6091", "Z6091K1": "Q131105" } ], "Z36660K2": { "Z1K1": "Z11", "Z11K1": "Z1430", "Z11K2": "Sonnenschein" } }, "Z20K3": { "Z1K1": "Z7", "Z7K1": "Z36670", "Z36670K2": { "Z1K1": "Z36463", "Z36463K1": [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q110786" }, { "Z1K1": "Z6091", "Z6091K1": "Q131105" } ], "Z36463K2": [ "Z89", { "Z1K1": "Z89", "Z89K1": "Sonnenschein" } ] } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Sonnenschein (de)" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } jjz1fd7cdon3clq0xjxc5saqmlknhe7 Z36704 0 86266 285601 285392 2026-06-22T12:24:00Z Denny 81 285601 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36704" }, "Z2K2": { "Z1K1": "Z20", "Z20K1": "Z36658", "Z20K2": { "Z1K1": "Z7", "Z7K1": "Z36658", "Z36658K1": [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q110786" }, { "Z1K1": "Z6091", "Z6091K1": "Q146233" } ], "Z36658K2": "Marienkäfers" }, "Z20K3": { "Z1K1": "Z7", "Z7K1": "Z36670", "Z36670K2": { "Z1K1": "Z36463", "Z36463K1": [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q110786" }, { "Z1K1": "Z6091", "Z6091K1": "Q146233" } ], "Z36463K2": [ "Z89", { "Z1K1": "Z89", "Z89K1": "Marienkäfers" } ] } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Marienkäfers (de)" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } 4yrq4a1qqkgljjfynai48s30knqk3zy Z36708 0 86270 285605 285406 2026-06-22T12:37:40Z Denny 81 285605 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36708" }, "Z2K2": { "Z1K1": "Z20", "Z20K1": "Z36650", "Z20K2": { "Z1K1": "Z7", "Z7K1": "Z36650", "Z36650K1": "Z36617" }, "Z20K3": { "Z1K1": "Z7", "Z7K1": "Z34270", "Z34270K2": [ "Z1", { "Z1K1": "Z36463", "Z36463K1": [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q110786" } ], "Z36463K2": [ "Z89", { "Z1K1": "Z89", "Z89K1": "goose" } ] }, { "Z1K1": "Z36463", "Z36463K1": [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q146786" } ], "Z36463K2": [ "Z89", { "Z1K1": "Z89", "Z89K1": "geese" } ] } ] } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "same order, untyped list" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } ospbyidhp1m27my8b98w6sqfjc5z0n5 Z36710 0 86272 285606 285408 2026-06-22T12:38:15Z Denny 81 285606 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36710" }, "Z2K2": { "Z1K1": "Z20", "Z20K1": "Z36650", "Z20K2": { "Z1K1": "Z7", "Z7K1": "Z36650", "Z36650K1": "Z36617" }, "Z20K3": { "Z1K1": "Z7", "Z7K1": "Z34270", "Z34270K2": [ "Z36463", { "Z1K1": "Z36463", "Z36463K1": [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q110786" } ], "Z36463K2": [ "Z89", { "Z1K1": "Z89", "Z89K1": "goose" } ] }, { "Z1K1": "Z36463", "Z36463K1": [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q146786" } ], "Z36463K2": [ "Z89", { "Z1K1": "Z89", "Z89K1": "geese" } ] } ] } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "same order, typed list" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } q2vmlrjx8zyrmfgu6t8o8yxiwzhay2k Z36712 0 86274 285607 285411 2026-06-22T12:38:49Z Denny 81 285607 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36712" }, "Z2K2": { "Z1K1": "Z20", "Z20K1": "Z36650", "Z20K2": { "Z1K1": "Z7", "Z7K1": "Z36650", "Z36650K1": "Z36617" }, "Z20K3": { "Z1K1": "Z7", "Z7K1": "Z34270", "Z34270K2": [ "Z36463", { "Z1K1": "Z36463", "Z36463K1": [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q146786" } ], "Z36463K2": [ "Z89", { "Z1K1": "Z89", "Z89K1": "geese" } ] }, { "Z1K1": "Z36463", "Z36463K1": [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q110786" } ], "Z36463K2": [ "Z89", { "Z1K1": "Z89", "Z89K1": "goose" } ] } ] } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "different order" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } 79mk29tiyiz6t7asqmhxudane6yf2si Z36713 0 86275 285880 285416 2026-06-23T06:46:10Z 99of9 1622 no space for % 285880 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36713" }, "Z2K2": { "Z1K1": "Z14", "Z14K1": "Z25326", "Z14K2": { "Z1K1": "Z7", "Z7K1": "Z10000", "Z10000K1": { "Z1K1": "Z7", "Z7K1": "Z25356", "Z25356K1": { "Z1K1": "Z18", "Z18K1": "Z25326K1" }, "Z25356K2": { "Z1K1": "Z18", "Z18K1": "Z25326K2" } }, "Z10000K2": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z25351", "Z25351K1": { "Z1K1": "Z18", "Z18K1": "Z25326K1" } }, "Z802K2": "Z11853", "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z13381", "Z13381K1": { "Z1K1": "Z7", "Z7K1": "Z25303", "Z25303K1": { "Z1K1": "Z18", "Z18K1": "Z25326K1" } }, "Z13381K2": [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q11229" } ] }, "Z802K2": { "Z1K1": "Z7", "Z7K1": "Z36697", "Z36697K1": { "Z1K1": "Z7", "Z7K1": "Z25303", "Z25303K1": { "Z1K1": "Z18", "Z18K1": "Z25326K1" } }, "Z36697K2": { "Z1K1": "Z18", "Z18K1": "Z25326K2" } }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z10000", "Z10000K1": "Z36687", "Z10000K2": { "Z1K1": "Z7", "Z7K1": "Z36697", "Z36697K1": { "Z1K1": "Z7", "Z7K1": "Z25303", "Z25303K1": { "Z1K1": "Z18", "Z18K1": "Z25326K1" } }, "Z36697K2": { "Z1K1": "Z18", "Z18K1": "Z25326K2" } } } } } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "display quantity with digits and unit w fallbacks" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } hdyqowq96nl2hkh6lzjt337cuc4int5 285882 285880 2026-06-23T06:49:04Z 99of9 1622 angles also don't have spaces 285882 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36713" }, "Z2K2": { "Z1K1": "Z14", "Z14K1": "Z25326", "Z14K2": { "Z1K1": "Z7", "Z7K1": "Z10000", "Z10000K1": { "Z1K1": "Z7", "Z7K1": "Z25356", "Z25356K1": { "Z1K1": "Z18", "Z18K1": "Z25326K1" }, "Z25356K2": { "Z1K1": "Z18", "Z18K1": "Z25326K2" } }, "Z10000K2": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z25351", "Z25351K1": { "Z1K1": "Z18", "Z18K1": "Z25326K1" } }, "Z802K2": "Z11853", "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z13381", "Z13381K1": { "Z1K1": "Z7", "Z7K1": "Z25303", "Z25303K1": { "Z1K1": "Z18", "Z18K1": "Z25326K1" } }, "Z13381K2": [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q11229" }, { "Z1K1": "Z6091", "Z6091K1": "Q28390" }, { "Z1K1": "Z6091", "Z6091K1": "Q209426" }, { "Z1K1": "Z6091", "Z6091K1": "Q829073" } ] }, "Z802K2": { "Z1K1": "Z7", "Z7K1": "Z36697", "Z36697K1": { "Z1K1": "Z7", "Z7K1": "Z25303", "Z25303K1": { "Z1K1": "Z18", "Z18K1": "Z25326K1" } }, "Z36697K2": { "Z1K1": "Z18", "Z18K1": "Z25326K2" } }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z10000", "Z10000K1": "Z36687", "Z10000K2": { "Z1K1": "Z7", "Z7K1": "Z36697", "Z36697K1": { "Z1K1": "Z7", "Z7K1": "Z25303", "Z25303K1": { "Z1K1": "Z18", "Z18K1": "Z25326K1" } }, "Z36697K2": { "Z1K1": "Z18", "Z18K1": "Z25326K2" } } } } } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "display quantity with digits and unit w fallbacks" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } ikd9ac1z6c91qk35rkmayh7axombyyx 285886 285882 2026-06-23T07:15:12Z 99of9 1622 rearrange to show currencies better 285886 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36713" }, "Z2K2": { "Z1K1": "Z14", "Z14K1": "Z25326", "Z14K2": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z25351", "Z25351K1": { "Z1K1": "Z18", "Z18K1": "Z25326K1" } }, "Z802K2": { "Z1K1": "Z7", "Z7K1": "Z25356", "Z25356K1": { "Z1K1": "Z18", "Z18K1": "Z25326K1" }, "Z25356K2": { "Z1K1": "Z18", "Z18K1": "Z25326K2" } }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z13381", "Z13381K1": { "Z1K1": "Z6091", "Z6091K1": "Q8142" }, "Z13381K2": { "Z1K1": "Z7", "Z7K1": "Z29623", "Z29623K1": { "Z1K1": "Z7", "Z7K1": "Z25303", "Z25303K1": { "Z1K1": "Z18", "Z18K1": "Z25326K1" } } } }, "Z802K2": { "Z1K1": "Z7", "Z7K1": "Z10000", "Z10000K1": { "Z1K1": "Z7", "Z7K1": "Z36697", "Z36697K1": { "Z1K1": "Z7", "Z7K1": "Z25303", "Z25303K1": { "Z1K1": "Z18", "Z18K1": "Z25326K1" } }, "Z36697K2": { "Z1K1": "Z18", "Z18K1": "Z25326K2" } }, "Z10000K2": { "Z1K1": "Z7", "Z7K1": "Z25356", "Z25356K1": { "Z1K1": "Z18", "Z18K1": "Z25326K1" }, "Z25356K2": { "Z1K1": "Z18", "Z18K1": "Z25326K2" } } }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z13381", "Z13381K1": { "Z1K1": "Z7", "Z7K1": "Z25303", "Z25303K1": { "Z1K1": "Z18", "Z18K1": "Z25326K1" } }, "Z13381K2": [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q11229" }, { "Z1K1": "Z6091", "Z6091K1": "Q28390" }, { "Z1K1": "Z6091", "Z6091K1": "Q209426" }, { "Z1K1": "Z6091", "Z6091K1": "Q829073" } ] }, "Z802K2": { "Z1K1": "Z7", "Z7K1": "Z10000", "Z10000K1": { "Z1K1": "Z7", "Z7K1": "Z25356", "Z25356K1": { "Z1K1": "Z18", "Z18K1": "Z25326K1" }, "Z25356K2": { "Z1K1": "Z18", "Z18K1": "Z25326K2" } }, "Z10000K2": { "Z1K1": "Z7", "Z7K1": "Z36697", "Z36697K1": { "Z1K1": "Z7", "Z7K1": "Z25303", "Z25303K1": { "Z1K1": "Z18", "Z18K1": "Z25326K1" } }, "Z36697K2": { "Z1K1": "Z18", "Z18K1": "Z25326K2" } } }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z15175", "Z15175K1": { "Z1K1": "Z7", "Z7K1": "Z25356", "Z25356K1": { "Z1K1": "Z18", "Z18K1": "Z25326K1" }, "Z25356K2": { "Z1K1": "Z18", "Z18K1": "Z25326K2" } }, "Z15175K2": { "Z1K1": "Z7", "Z7K1": "Z36697", "Z36697K1": { "Z1K1": "Z7", "Z7K1": "Z25303", "Z25303K1": { "Z1K1": "Z18", "Z18K1": "Z25326K1" } }, "Z36697K2": { "Z1K1": "Z18", "Z18K1": "Z25326K2" } }, "Z15175K3": "Z36687" } } } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "display quantity with digits and unit w fallbacks" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } gmp2bhdh9k0nnrqksr5zsmgyg5j066r Z36714 0 86276 285881 285418 2026-06-23T06:47:42Z 99of9 1622 non-breaking space 285881 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36714" }, "Z2K2": { "Z1K1": "Z20", "Z20K1": "Z25326", "Z20K2": { "Z1K1": "Z7", "Z7K1": "Z25326", "Z25326K1": { "Z1K1": "Z6010", "Z6010K1": { "Z1K1": "Z19677", "Z19677K1": { "Z1K1": "Z16659", "Z16659K1": "Z16660" }, "Z19677K2": { "Z1K1": "Z13518", "Z13518K1": "99" }, "Z19677K3": { "Z1K1": "Z13518", "Z13518K1": "1" } }, "Z6010K2": { "Z1K1": "Z19677", "Z19677K1": { "Z1K1": "Z16659", "Z16659K1": "Z16660" }, "Z19677K2": { "Z1K1": "Z13518", "Z13518K1": "99" }, "Z19677K3": { "Z1K1": "Z13518", "Z13518K1": "1" } }, "Z6010K3": { "Z1K1": "Z19677", "Z19677K1": { "Z1K1": "Z16659", "Z16659K1": "Z16660" }, "Z19677K2": { "Z1K1": "Z13518", "Z13518K1": "99" }, "Z19677K3": { "Z1K1": "Z13518", "Z13518K1": "1" } }, "Z6010K4": { "Z1K1": "Z6091", "Z6091K1": "Q24564698" } }, "Z25326K2": "Z1147" }, "Z20K3": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K2": "99 Q24564698" } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "99 y.o. [dz]: \"99 Q24564698\"" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } gp8abpjaw5vvt8g8q7iw4nne51m5poc Z36715 0 86277 285609 285421 2026-06-22T12:41:38Z Denny 81 285609 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36715" }, "Z2K2": { "Z1K1": "Z20", "Z20K1": "Z36650", "Z20K2": { "Z1K1": "Z7", "Z7K1": "Z36650", "Z36650K1": "Z36645" }, "Z20K3": { "Z1K1": "Z7", "Z7K1": "Z34270", "Z34270K2": [ "Z36463", { "Z1K1": "Z36463", "Z36463K1": [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q131105" }, { "Z1K1": "Z6091", "Z6091K1": "Q110786" } ], "Z36463K2": [ "Z89", { "Z1K1": "Z89", "Z89K1": "Gans" } ] }, { "Z1K1": "Z36463", "Z36463K1": [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q131105" }, { "Z1K1": "Z6091", "Z6091K1": "Q146786" } ], "Z36463K2": [ "Z89", { "Z1K1": "Z89", "Z89K1": "Gänse" } ] }, { "Z1K1": "Z36463", "Z36463K1": [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q146233" }, { "Z1K1": "Z6091", "Z6091K1": "Q110786" } ], "Z36463K2": [ "Z89", { "Z1K1": "Z89", "Z89K1": "Gans" } ] }, { "Z1K1": "Z36463", "Z36463K1": [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q146233" }, { "Z1K1": "Z6091", "Z6091K1": "Q146786" } ], "Z36463K2": [ "Z89", { "Z1K1": "Z89", "Z89K1": "Gänse" } ] }, { "Z1K1": "Z36463", "Z36463K1": [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q145599" }, { "Z1K1": "Z6091", "Z6091K1": "Q110786" } ], "Z36463K2": [ "Z89", { "Z1K1": "Z89", "Z89K1": "Gans" } ] }, { "Z1K1": "Z36463", "Z36463K1": [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q145599" }, { "Z1K1": "Z6091", "Z6091K1": "Q146786" } ], "Z36463K2": [ "Z89", { "Z1K1": "Z89", "Z89K1": "Gänsen" } ] }, { "Z1K1": "Z36463", "Z36463K1": [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q146078" }, { "Z1K1": "Z6091", "Z6091K1": "Q110786" } ], "Z36463K2": [ "Z89", { "Z1K1": "Z89", "Z89K1": "Gans" } ] }, { "Z1K1": "Z36463", "Z36463K1": [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q146078" }, { "Z1K1": "Z6091", "Z6091K1": "Q146786" } ], "Z36463K2": [ "Z89", { "Z1K1": "Z89", "Z89K1": "Gänse" } ] } ] } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "different order of options and features" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } kd79o78kvl0ra5es0nzhf7id3ma5ozv Z36716 0 86279 285608 285426 2026-06-22T12:40:13Z Denny 81 285608 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36716" }, "Z2K2": { "Z1K1": "Z20", "Z20K1": "Z36650", "Z20K2": { "Z1K1": "Z7", "Z7K1": "Z36650", "Z36650K1": "Z36645" }, "Z20K3": { "Z1K1": "Z7", "Z7K1": "Z34270", "Z34270K2": [ "Z36463", { "Z1K1": "Z36463", "Z36463K1": [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q110786" }, { "Z1K1": "Z6091", "Z6091K1": "Q131105" } ], "Z36463K2": [ "Z89", { "Z1K1": "Z89", "Z89K1": "Gans" } ] }, { "Z1K1": "Z36463", "Z36463K1": [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q146786" }, { "Z1K1": "Z6091", "Z6091K1": "Q131105" } ], "Z36463K2": [ "Z89", { "Z1K1": "Z89", "Z89K1": "Gänse" } ] }, { "Z1K1": "Z36463", "Z36463K1": [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q110786" }, { "Z1K1": "Z6091", "Z6091K1": "Q146233" } ], "Z36463K2": [ "Z89", { "Z1K1": "Z89", "Z89K1": "Gans" } ] }, { "Z1K1": "Z36463", "Z36463K1": [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q146786" }, { "Z1K1": "Z6091", "Z6091K1": "Q146233" } ], "Z36463K2": [ "Z89", { "Z1K1": "Z89", "Z89K1": "Gänse" } ] }, { "Z1K1": "Z36463", "Z36463K1": [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q110786" }, { "Z1K1": "Z6091", "Z6091K1": "Q145599" } ], "Z36463K2": [ "Z89", { "Z1K1": "Z89", "Z89K1": "Gans" } ] }, { "Z1K1": "Z36463", "Z36463K1": [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q146786" }, { "Z1K1": "Z6091", "Z6091K1": "Q145599" } ], "Z36463K2": [ "Z89", { "Z1K1": "Z89", "Z89K1": "Gänsen" } ] }, { "Z1K1": "Z36463", "Z36463K1": [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q110786" }, { "Z1K1": "Z6091", "Z6091K1": "Q146078" } ], "Z36463K2": [ "Z89", { "Z1K1": "Z89", "Z89K1": "Gans" } ] }, { "Z1K1": "Z36463", "Z36463K1": [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q146786" }, { "Z1K1": "Z6091", "Z6091K1": "Q146078" } ], "Z36463K2": [ "Z89", { "Z1K1": "Z89", "Z89K1": "Gänse" } ] } ] } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "different order of options, same order of features" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } 1n2afgzbqvazojg6k4ul9zkzxmczkbm Z36722 0 86285 285603 285451 2026-06-22T12:27:30Z Denny 81 285603 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36722" }, "Z2K2": { "Z1K1": "Z20", "Z20K1": "Z36608", "Z20K2": { "Z1K1": "Z7", "Z7K1": "Z36608", "Z36608K1": "Z1002", "Z36608K2": { "Z1K1": "Z6091", "Z6091K1": "Q1084" }, "Z36608K3": [ "Z6091" ], "Z36608K4": [ "Z36463", { "Z1K1": "Z36463", "Z36463K1": [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q110786" } ], "Z36463K2": [ "Z89", { "Z1K1": "Z89", "Z89K1": "goose" } ] }, { "Z1K1": "Z36463", "Z36463K1": [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q146786" } ], "Z36463K2": [ "Z89", { "Z1K1": "Z89", "Z89K1": "geese" } ] } ] }, "Z20K3": { "Z1K1": "Z7", "Z7K1": "Z36717", "Z36717K2": "Z36617" } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "rebuild goose" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } nzczp4f12gxtcvmkqdxq1zcl2e7a5lc Z36734 0 86298 285610 285476 2026-06-22T12:42:58Z Denny 81 285610 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36734" }, "Z2K2": { "Z1K1": "Z20", "Z20K1": "Z36733", "Z20K2": { "Z1K1": "Z7", "Z7K1": "Z36733", "Z36733K1": { "Z1K1": "Z36462", "Z36462K1": "Z1002", "Z36462K2": { "Z1K1": "Z6091", "Z6091K1": "Q380057" }, "Z36462K3": [ "Z6091" ], "Z36462K4": [ "Z36463", { "Z1K1": "Z36463", "Z36463K1": [ "Z6091" ], "Z36463K2": [ "Z89", { "Z1K1": "Z89", "Z89K1": "quickly" } ] } ] } }, "Z20K3": { "Z1K1": "Z7", "Z7K1": "Z844", "Z844K2": { "Z1K1": "Z40", "Z40K1": "Z41" } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "quickly has a single option" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } h2t86czdr1ntrskv2ich4aygdj0wrah Z36738 0 86302 285611 285484 2026-06-22T12:43:55Z Denny 81 285611 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36738" }, "Z2K2": { "Z1K1": "Z20", "Z20K1": "Z36737", "Z20K2": { "Z1K1": "Z7", "Z7K1": "Z36737", "Z36737K1": { "Z1K1": "Z36462", "Z36462K1": "Z1002", "Z36462K2": { "Z1K1": "Z6091", "Z6091K1": "Q380057" }, "Z36462K3": [ "Z6091" ], "Z36462K4": [ "Z36463", { "Z1K1": "Z36463", "Z36463K1": [ "Z6091" ], "Z36463K2": [ "Z89", { "Z1K1": "Z89", "Z89K1": "quickly" } ] } ] } }, "Z20K3": { "Z1K1": "Z7", "Z7K1": "Z844", "Z844K2": { "Z1K1": "Z40", "Z40K1": "Z42" } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "quickly has one option" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } ojvoyh92zliz3nfkltvb4or2o9zww38 Z36744 0 86308 285612 285497 2026-06-22T12:45:05Z Denny 81 285612 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36744" }, "Z2K2": { "Z1K1": "Z20", "Z20K1": "Z36743", "Z20K2": { "Z1K1": "Z7", "Z7K1": "Z36743", "Z36743K1": "Z36617" }, "Z20K3": { "Z1K1": "Z7", "Z7K1": "Z36670", "Z36670K2": { "Z1K1": "Z36463", "Z36463K1": [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q110786" } ], "Z36463K2": [ "Z89", { "Z1K1": "Z89", "Z89K1": "goose" } ] } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "first option of goose is singular" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } 8du4syr48m3yuq1v6cjinbs7668auvm Z36745 0 86309 285613 285499 2026-06-22T12:45:23Z Denny 81 285613 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36745" }, "Z2K2": { "Z1K1": "Z20", "Z20K1": "Z36743", "Z20K2": { "Z1K1": "Z7", "Z7K1": "Z36743", "Z36743K1": "Z36645" }, "Z20K3": { "Z1K1": "Z7", "Z7K1": "Z36670", "Z36670K2": { "Z1K1": "Z36463", "Z36463K1": [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q110786" }, { "Z1K1": "Z6091", "Z6091K1": "Q131105" } ], "Z36463K2": [ "Z89", { "Z1K1": "Z89", "Z89K1": "Gans" } ] } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "first option of Gans (de)" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } p44suhq285ucivs26w0nm4g7peatvgs Z36747 0 86311 285614 285517 2026-06-22T12:47:00Z Denny 81 285614 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36747" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z36462", "Z17K2": "Z36747K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "table" } ] } } ], "Z8K2": "Z89", "Z8K3": [ "Z20", "Z36748", "Z36749" ], "Z8K4": [ "Z14", "Z36750" ], "Z8K5": "Z36747" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "first fragment" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "returns the first fragment of the first Syntactic option of the table. Note that this is not always the basic option, but getting that instead would depend on the language and part of speech." } ] } } rssfyyq1rblfvoyp18bdaojokmkscao Z36750 0 86314 285615 285515 2026-06-22T12:47:55Z Denny 81 285615 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36750" }, "Z2K2": { "Z1K1": "Z14", "Z14K1": "Z36747", "Z14K2": { "Z1K1": "Z7", "Z7K1": "Z811", "Z811K1": { "Z1K1": "Z7", "Z7K1": "Z36666", "Z36666K1": { "Z1K1": "Z7", "Z7K1": "Z36743", "Z36743K1": { "Z1K1": "Z18", "Z18K1": "Z36747K1" } } } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "first fragment of first option" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } jt7kcxok66ehmlub494gcgszkxw2ypj Z36752 0 86316 285618 285522 2026-06-22T12:57:09Z Denny 81 285618 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36752" }, "Z2K2": { "Z1K1": "Z20", "Z20K1": "Z36607", "Z20K2": { "Z1K1": "Z7", "Z7K1": "Z36607", "Z36607K1": { "Z1K1": "Z7", "Z7K1": "Z6825", "Z6825K1": { "Z1K1": "Z6095", "Z6095K1": "L3534" } } }, "Z20K3": { "Z1K1": "Z7", "Z7K1": "Z36717", "Z36717K2": { "Z1K1": "Z36462", "Z36462K1": "Z1002", "Z36462K2": { "Z1K1": "Z6091", "Z6091K1": "Q1084" }, "Z36462K3": [ "Z6091" ], "Z36462K4": [ "Z36463", { "Z1K1": "Z36463", "Z36463K1": [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q110786" } ], "Z36463K2": [ "Z89", { "Z1K1": "Z89", "Z89K1": "eye" } ] }, { "Z1K1": "Z36463", "Z36463K1": [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q146786" } ], "Z36463K2": [ "Z89", { "Z1K1": "Z89", "Z89K1": "eyes" } ] } ] } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "eye = L3534" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } rsi7gimmrsegczc9rpenhosdk1btz05 Z36753 0 86317 285619 285526 2026-06-22T12:58:18Z Denny 81 285619 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36753" }, "Z2K2": { "Z1K1": "Z14", "Z14K1": "Z36607", "Z14K2": { "Z1K1": "Z36462", "Z36462K1": "Z1002", "Z36462K2": { "Z1K1": "Z6091", "Z6091K1": "Q1084" }, "Z36462K3": [ "Z6091" ], "Z36462K4": [ "Z36463", { "Z1K1": "Z36463", "Z36463K1": [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q110786" } ], "Z36463K2": [ "Z89", { "Z1K1": "Z7", "Z7K1": "Z27868", "Z27868K1": { "Z1K1": "Z7", "Z7K1": "Z14396", "Z14396K1": { "Z1K1": "Z7", "Z7K1": "Z19252", "Z19252K1": { "Z1K1": "Z18", "Z18K1": "Z36607K1" } } } } ] }, { "Z1K1": "Z36463", "Z36463K1": [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q146786" } ], "Z36463K2": [ "Z89", { "Z1K1": "Z7", "Z7K1": "Z27868", "Z27868K1": { "Z1K1": "Z7", "Z7K1": "Z14396", "Z14396K1": { "Z1K1": "Z7", "Z7K1": "Z19260", "Z19260K1": { "Z1K1": "Z18", "Z18K1": "Z36607K1" } } } } ] } ] } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "using singular and plural form functions" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } t4f5iey94ry98t510lcnj5w4o292h4o Z36754 0 86318 285620 285538 2026-06-22T12:58:31Z WikiLambda system 3 Updated the implementation list (see [[Help:Wikifunctions/Implementation_ordering_and_choosing|About implementation selection]]) 285620 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36754" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z6095", "Z17K2": "Z36754K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "lexeme reference" } ] } } ], "Z8K2": "Z36462", "Z8K3": [ "Z20", "Z36755", "Z36756" ], "Z8K4": [ "Z14", "Z36758", "Z36757" ], "Z8K5": "Z36754" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "English noun from Lexeme reference" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "constructs a syntactic table for an English noun from an English noun Lexeme reference" } ] } } auuux30a0p6hf52z9f357umxsrbwkw4 285622 285620 2026-06-22T12:59:17Z WikiLambda system 3 Updated the implementation list (see [[Help:Wikifunctions/Implementation_ordering_and_choosing|About implementation selection]]) 285622 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36754" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z6095", "Z17K2": "Z36754K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "lexeme reference" } ] } } ], "Z8K2": "Z36462", "Z8K3": [ "Z20", "Z36755", "Z36756" ], "Z8K4": [ "Z14", "Z36757", "Z36758" ], "Z8K5": "Z36754" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "English noun from Lexeme reference" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "constructs a syntactic table for an English noun from an English noun Lexeme reference" } ] } } mnudvkanwciwlxiwdt3fwvc7n2a6upz Z36756 0 86320 285621 285533 2026-06-22T12:59:12Z Denny 81 285621 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36756" }, "Z2K2": { "Z1K1": "Z20", "Z20K1": "Z36754", "Z20K2": { "Z1K1": "Z7", "Z7K1": "Z36754", "Z36754K1": { "Z1K1": "Z6095", "Z6095K1": "L4905" } }, "Z20K3": { "Z1K1": "Z7", "Z7K1": "Z36717", "Z36717K2": { "Z1K1": "Z36462", "Z36462K1": "Z1002", "Z36462K2": { "Z1K1": "Z6091", "Z6091K1": "Q1084" }, "Z36462K3": [ "Z6091" ], "Z36462K4": [ "Z36463", { "Z1K1": "Z36463", "Z36463K1": [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q146786" } ], "Z36463K2": [ "Z89", { "Z1K1": "Z89", "Z89K1": "islands" } ] }, { "Z1K1": "Z36463", "Z36463K1": [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q110786" } ], "Z36463K2": [ "Z89", { "Z1K1": "Z89", "Z89K1": "island" } ] } ] } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "from reference for island" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } 3mfbeanafhec36fblfquvax2k9pc4jn Z36758 0 86322 285623 285537 2026-06-22T13:00:12Z Denny 81 285623 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36758" }, "Z2K2": { "Z1K1": "Z14", "Z14K1": "Z36754", "Z14K2": { "Z1K1": "Z36462", "Z36462K1": "Z1002", "Z36462K2": { "Z1K1": "Z6091", "Z6091K1": "Q1084" }, "Z36462K3": [ "Z6091" ], "Z36462K4": [ "Z36463", { "Z1K1": "Z36463", "Z36463K1": [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q110786" } ], "Z36463K2": [ "Z89", { "Z1K1": "Z7", "Z7K1": "Z27868", "Z27868K1": { "Z1K1": "Z7", "Z7K1": "Z14396", "Z14396K1": { "Z1K1": "Z7", "Z7K1": "Z19252", "Z19252K1": { "Z1K1": "Z7", "Z7K1": "Z6825", "Z6825K1": { "Z1K1": "Z18", "Z18K1": "Z36754K1" } } } } } ] }, { "Z1K1": "Z36463", "Z36463K1": [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q146786" } ], "Z36463K2": [ "Z89", { "Z1K1": "Z7", "Z7K1": "Z27868", "Z27868K1": { "Z1K1": "Z7", "Z7K1": "Z14396", "Z14396K1": { "Z1K1": "Z7", "Z7K1": "Z19260", "Z19260K1": { "Z1K1": "Z7", "Z7K1": "Z6825", "Z6825K1": { "Z1K1": "Z18", "Z18K1": "Z36754K1" } } } } } ] } ] } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "singular and plural functions with fetches" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } e3l1eeu27bsym28lv735yonl5955ukj Z36761 0 86325 285616 285543 2026-06-22T12:54:49Z Denny 81 285616 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36761" }, "Z2K2": { "Z1K1": "Z14", "Z14K1": "Z36759", "Z14K2": { "Z1K1": "Z36462", "Z36462K1": "Z1002", "Z36462K2": { "Z1K1": "Z6091", "Z6091K1": "Q1084" }, "Z36462K3": [ "Z6091" ], "Z36462K4": [ "Z36463", { "Z1K1": "Z36463", "Z36463K1": [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q110786" } ], "Z36463K2": [ "Z89", { "Z1K1": "Z7", "Z7K1": "Z27868", "Z27868K1": { "Z1K1": "Z18", "Z18K1": "Z36759K1" } } ] }, { "Z1K1": "Z36463", "Z36463K1": [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q146786" } ], "Z36463K2": [ "Z89", { "Z1K1": "Z7", "Z7K1": "Z27868", "Z27868K1": { "Z1K1": "Z18", "Z18K1": "Z36759K2" } } ] } ] } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } p2oa2yzxh83ckvndfhntkhtedhrzsk8 Z36764 0 86328 285617 285549 2026-06-22T12:56:14Z Denny 81 285617 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36764" }, "Z2K2": { "Z1K1": "Z20", "Z20K1": "Z36762", "Z20K2": { "Z1K1": "Z7", "Z7K1": "Z36762", "Z36762K1": "baby" }, "Z20K3": { "Z1K1": "Z7", "Z7K1": "Z36717", "Z36717K2": { "Z1K1": "Z36462", "Z36462K1": "Z1002", "Z36462K2": { "Z1K1": "Z6091", "Z6091K1": "Q1084" }, "Z36462K3": [ "Z6091" ], "Z36462K4": [ "Z36463", { "Z1K1": "Z36463", "Z36463K1": [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q110786" } ], "Z36463K2": [ "Z89", { "Z1K1": "Z89", "Z89K1": "baby" } ] }, { "Z1K1": "Z36463", "Z36463K1": [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q146786" } ], "Z36463K2": [ "Z89", { "Z1K1": "Z89", "Z89K1": "babies" } ] } ] } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "baby vs local baby" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } 5c9qn3uxwrko0sry4eb8kqsmi4pfs7n Z36770 0 86334 285625 2026-06-22T13:07:03Z Denny 81 285625 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36770" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z36462", "Z17K2": "Z36770K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "table" } ] } } ], "Z8K2": "Z40", "Z8K3": [ "Z20" ], "Z8K4": [ "Z14" ], "Z8K5": "Z36770" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "is valid English noun table" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } arjkqwu3ifuk9nx7ransrniwvwvtw1m 285632 285625 2026-06-22T13:12:58Z Denny 81 Added Z36771, Z36772, Z36773, Z36774, Z36775 and Z36776 to the approved list of test cases 285632 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36770" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z36462", "Z17K2": "Z36770K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "table" } ] } } ], "Z8K2": "Z40", "Z8K3": [ "Z20", "Z36771", "Z36772", "Z36773", "Z36774", "Z36775", "Z36776" ], "Z8K4": [ "Z14" ], "Z8K5": "Z36770" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "is valid English noun table" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } q2xvyxujrtrquirssdpcdea4o78m44u 285634 285632 2026-06-22T13:25:34Z Denny 81 Added Z36777 to the approved list of implementations 285634 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36770" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z36462", "Z17K2": "Z36770K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "table" } ] } } ], "Z8K2": "Z40", "Z8K3": [ "Z20", "Z36771", "Z36772", "Z36773", "Z36774", "Z36775", "Z36776" ], "Z8K4": [ "Z14", "Z36777" ], "Z8K5": "Z36770" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "is valid English noun table" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } szfpe1jfiyb0skm8bddqst4gsrlenq0 285638 285634 2026-06-22T13:27:20Z Denny 81 285638 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36770" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z36462", "Z17K2": "Z36770K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "table" } ] } } ], "Z8K2": "Z40", "Z8K3": [ "Z20", "Z36771", "Z36772", "Z36773", "Z36774", "Z36775", "Z36776" ], "Z8K4": [ "Z14", "Z36777" ], "Z8K5": "Z36770" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "is valid English noun table" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "checks if it has forms for sg and pl, no inherent, right language and pos, and ex. 1 fragment/form" } ] } } ge83wa9e2mfon78b6sudgbal3h8zi1a Z36771 0 86335 285626 2026-06-22T13:07:42Z Denny 81 285626 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36771" }, "Z2K2": { "Z1K1": "Z20", "Z20K1": "Z36770", "Z20K2": { "Z1K1": "Z7", "Z7K1": "Z36770", "Z36770K1": "Z36617" }, "Z20K3": { "Z1K1": "Z7", "Z7K1": "Z844", "Z844K2": { "Z1K1": "Z40", "Z40K1": "Z41" } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "goose is valid" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } 1zfuur09ys65dgnm3oarjwg4pjdlth3 Z36772 0 86336 285627 2026-06-22T13:08:30Z Denny 81 285627 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36772" }, "Z2K2": { "Z1K1": "Z20", "Z20K1": "Z36770", "Z20K2": { "Z1K1": "Z7", "Z7K1": "Z36770", "Z36770K1": { "Z1K1": "Z36462", "Z36462K1": "Z1002", "Z36462K2": { "Z1K1": "Z6091", "Z6091K1": "Q34698" }, "Z36462K3": [ "Z6091" ], "Z36462K4": [ "Z36463", { "Z1K1": "Z36463", "Z36463K1": [ "Z6091" ], "Z36463K2": [ "Z89", { "Z1K1": "Z89", "Z89K1": "quickly" } ] } ] } }, "Z20K3": { "Z1K1": "Z7", "Z7K1": "Z844", "Z844K2": { "Z1K1": "Z40", "Z40K1": "Z42" } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "adjective is not a noun" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } dkg2qodwy5j8z27bcpq8nydvhjwsxud Z36773 0 86337 285628 2026-06-22T13:09:03Z Denny 81 285628 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36773" }, "Z2K2": { "Z1K1": "Z20", "Z20K1": "Z36770", "Z20K2": { "Z1K1": "Z7", "Z7K1": "Z36770", "Z36770K1": "Z36645" }, "Z20K3": { "Z1K1": "Z7", "Z7K1": "Z844", "Z844K2": { "Z1K1": "Z40", "Z40K1": "Z42" } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "German nouns are not English" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } 8xz2bik1xstk7rw5w42bksrukl5cpg3 Z36774 0 86338 285629 2026-06-22T13:10:31Z Denny 81 285629 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36774" }, "Z2K2": { "Z1K1": "Z20", "Z20K1": "Z36770", "Z20K2": { "Z1K1": "Z7", "Z7K1": "Z36770", "Z36770K1": { "Z1K1": "Z36462", "Z36462K1": "Z1002", "Z36462K2": { "Z1K1": "Z6091", "Z6091K1": "Q1084" }, "Z36462K3": [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q604984" } ], "Z36462K4": [ "Z36463", { "Z1K1": "Z36463", "Z36463K1": [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q110786" } ], "Z36463K2": [ "Z89", { "Z1K1": "Z89", "Z89K1": "Paris" } ] }, { "Z1K1": "Z36463", "Z36463K1": [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q146786" } ], "Z36463K2": [ "Z89", { "Z1K1": "Z89", "Z89K1": "Parises" } ] } ] } }, "Z20K3": { "Z1K1": "Z7", "Z7K1": "Z844", "Z844K2": { "Z1K1": "Z40", "Z40K1": "Z42" } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "nouns have no inherent features in English" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } hfd06p88d8xzoaqq79ecspffjjbgnni Z36775 0 86339 285630 2026-06-22T13:11:22Z Denny 81 285630 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36775" }, "Z2K2": { "Z1K1": "Z20", "Z20K1": "Z36770", "Z20K2": { "Z1K1": "Z7", "Z7K1": "Z36770", "Z36770K1": { "Z1K1": "Z36462", "Z36462K1": "Z1002", "Z36462K2": { "Z1K1": "Z6091", "Z6091K1": "Q1084" }, "Z36462K3": [ "Z6091" ], "Z36462K4": [ "Z36463", { "Z1K1": "Z36463", "Z36463K1": [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q110786" } ], "Z36463K2": [ "Z89", { "Z1K1": "Z89", "Z89K1": "universe" } ] } ] } }, "Z20K3": { "Z1K1": "Z7", "Z7K1": "Z844", "Z844K2": { "Z1K1": "Z40", "Z40K1": "Z42" } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "English noun have two options" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } 3i4fx52myb7ibcj66ubvhwwma0tp0sw Z36776 0 86340 285631 2026-06-22T13:12:42Z Denny 81 285631 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36776" }, "Z2K2": { "Z1K1": "Z20", "Z20K1": "Z36770", "Z20K2": { "Z1K1": "Z7", "Z7K1": "Z36770", "Z36770K1": { "Z1K1": "Z36462", "Z36462K1": "Z1002", "Z36462K2": { "Z1K1": "Z6091", "Z6091K1": "Q1084" }, "Z36462K3": [ "Z6091" ], "Z36462K4": [ "Z36463", { "Z1K1": "Z36463", "Z36463K1": [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q110786" } ], "Z36463K2": [ "Z89", { "Z1K1": "Z89", "Z89K1": "album" } ] }, { "Z1K1": "Z36463", "Z36463K1": [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q10350570" } ], "Z36463K2": [ "Z89", { "Z1K1": "Z89", "Z89K1": "albums" } ] } ] } }, "Z20K3": { "Z1K1": "Z7", "Z7K1": "Z844", "Z844K2": { "Z1K1": "Z40", "Z40K1": "Z42" } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "wrong feature on second option" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } ag4iin8d90qtxtho1gimxkeyh6nn05t Z36777 0 86341 285633 2026-06-22T13:25:06Z Denny 81 285633 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36777" }, "Z2K2": { "Z1K1": "Z14", "Z14K1": "Z36770", "Z14K2": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z19316", "Z19316K1": { "Z1K1": "Z7", "Z7K1": "Z36636", "Z36636K1": { "Z1K1": "Z18", "Z18K1": "Z36770K1" } }, "Z19316K2": { "Z1K1": "Z6091", "Z6091K1": "Q1084" } }, "Z802K2": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z14326", "Z14326K1": { "Z1K1": "Z7", "Z7K1": "Z36613", "Z36613K1": { "Z1K1": "Z18", "Z18K1": "Z36770K1" } }, "Z14326K2": "Z1002" }, "Z802K2": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z813", "Z813K1": { "Z1K1": "Z7", "Z7K1": "Z36644", "Z36644K1": { "Z1K1": "Z18", "Z18K1": "Z36770K1" } } }, "Z802K2": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z13522", "Z13522K1": { "Z1K1": "Z7", "Z7K1": "Z36652", "Z36652K1": { "Z1K1": "Z18", "Z18K1": "Z36770K1" } }, "Z13522K2": { "Z1K1": "Z13518", "Z13518K1": "2" } }, "Z802K2": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z889", "Z889K1": [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q110786" } ], "Z889K2": { "Z1K1": "Z7", "Z7K1": "Z36662", "Z36662K1": { "Z1K1": "Z7", "Z7K1": "Z36743", "Z36743K1": { "Z1K1": "Z18", "Z18K1": "Z36770K1" } } }, "Z889K3": "Z19316" }, "Z802K2": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z889", "Z889K1": [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q146786" } ], "Z889K2": { "Z1K1": "Z7", "Z7K1": "Z36662", "Z36662K1": { "Z1K1": "Z7", "Z7K1": "Z29446", "Z29446K1": { "Z1K1": "Z7", "Z7K1": "Z36650", "Z36650K1": { "Z1K1": "Z18", "Z18K1": "Z36770K1" } } } }, "Z889K3": "Z19316" }, "Z802K2": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z30164", "Z30164K1": { "Z1K1": "Z7", "Z7K1": "Z36666", "Z36666K1": { "Z1K1": "Z7", "Z7K1": "Z36743", "Z36743K1": { "Z1K1": "Z18", "Z18K1": "Z36770K1" } } }, "Z30164K2": { "Z1K1": "Z13518", "Z13518K1": "1" } }, "Z802K2": { "Z1K1": "Z7", "Z7K1": "Z30164", "Z30164K1": { "Z1K1": "Z7", "Z7K1": "Z36666", "Z36666K1": { "Z1K1": "Z7", "Z7K1": "Z29446", "Z29446K1": { "Z1K1": "Z7", "Z7K1": "Z36650", "Z36650K1": { "Z1K1": "Z18", "Z18K1": "Z36770K1" } } } }, "Z30164K2": { "Z1K1": "Z13518", "Z13518K1": "1" } }, "Z802K3": { "Z1K1": "Z40", "Z40K1": "Z42" } }, "Z802K3": { "Z1K1": "Z40", "Z40K1": "Z42" } }, "Z802K3": { "Z1K1": "Z40", "Z40K1": "Z42" } }, "Z802K3": { "Z1K1": "Z40", "Z40K1": "Z42" } }, "Z802K3": { "Z1K1": "Z40", "Z40K1": "Z42" } }, "Z802K3": { "Z1K1": "Z40", "Z40K1": "Z42" } }, "Z802K3": { "Z1K1": "Z40", "Z40K1": "Z42" } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "deep if else with all conditions" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } bh4mg5264fmfdyr6kfutqvmte0ok1eb Z36778 0 86342 285641 2026-06-22T14:37:54Z Strobilomyces 193 created function 285641 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36778" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z6091", "Z17K2": "Z36778K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "entity" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z6091", "Z17K2": "Z36778K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "adjective" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z6091", "Z17K2": "Z36778K3", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "class" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z6005", "Z17K2": "Z36778K4", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "location" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z16927", "Z17K2": "Z36778K5", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "language" } ] } } ], "Z8K2": "Z11", "Z8K3": [ "Z20" ], "Z8K4": [ "Z14" ], "Z8K5": "Z36778" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "superlative definition, in Spanish" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Example: Australia es el continente más plano de la tierra." } ] } } kpoh4ocjiogoga6ca7fsh5jbvyldl0n 285642 285641 2026-06-22T14:41:17Z Strobilomyces 193 corrected type of last parameter 285642 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36778" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z6091", "Z17K2": "Z36778K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "entity" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z6091", "Z17K2": "Z36778K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "adjective" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z6091", "Z17K2": "Z36778K3", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "class" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z6005", "Z17K2": "Z36778K4", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "location" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z60", "Z17K2": "Z36778K5", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "language" } ] } } ], "Z8K2": "Z11", "Z8K3": [ "Z20" ], "Z8K4": [ "Z14" ], "Z8K5": "Z36778" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "superlative definition, in Spanish" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Example: Australia es el continente más plano de la tierra." } ] } } 6osmhi4zqwajvstmxw7mgw9xjxgfok8 285643 285642 2026-06-22T14:54:25Z Strobilomyces 193 add Spanish 285643 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36778" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z6091", "Z17K2": "Z36778K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "entity" }, { "Z1K1": "Z11", "Z11K1": "Z1003", "Z11K2": "entidad" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z6091", "Z17K2": "Z36778K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "adjective" }, { "Z1K1": "Z11", "Z11K1": "Z1003", "Z11K2": "adjetivo" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z6091", "Z17K2": "Z36778K3", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "class" }, { "Z1K1": "Z11", "Z11K1": "Z1003", "Z11K2": "clase" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z6005", "Z17K2": "Z36778K4", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "location" }, { "Z1K1": "Z11", "Z11K1": "Z1003", "Z11K2": "ubicación" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z60", "Z17K2": "Z36778K5", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "language" }, { "Z1K1": "Z11", "Z11K1": "Z1003", "Z11K2": "idioma" } ] } } ], "Z8K2": "Z11", "Z8K3": [ "Z20" ], "Z8K4": [ "Z14" ], "Z8K5": "Z36778" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "superlative definition, in Spanish" }, { "Z1K1": "Z11", "Z11K1": "Z1003", "Z11K2": "definición de un superlativo, en español" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Example: Australia es el continente más plano de la tierra." }, { "Z1K1": "Z11", "Z11K1": "Z1003", "Z11K2": "Example: Australia es el continente más plano de la tierra." } ] } } 5pak9ywsyh79o00eqfzi6yfphvwea1s 285647 285643 2026-06-22T16:25:42Z Strobilomyces 193 Added Z36779 to the approved list of test cases 285647 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36778" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z6091", "Z17K2": "Z36778K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "entity" }, { "Z1K1": "Z11", "Z11K1": "Z1003", "Z11K2": "entidad" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z6091", "Z17K2": "Z36778K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "adjective" }, { "Z1K1": "Z11", "Z11K1": "Z1003", "Z11K2": "adjetivo" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z6091", "Z17K2": "Z36778K3", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "class" }, { "Z1K1": "Z11", "Z11K1": "Z1003", "Z11K2": "clase" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z6005", "Z17K2": "Z36778K4", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "location" }, { "Z1K1": "Z11", "Z11K1": "Z1003", "Z11K2": "ubicación" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z60", "Z17K2": "Z36778K5", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "language" }, { "Z1K1": "Z11", "Z11K1": "Z1003", "Z11K2": "idioma" } ] } } ], "Z8K2": "Z11", "Z8K3": [ "Z20", "Z36779" ], "Z8K4": [ "Z14" ], "Z8K5": "Z36778" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "superlative definition, in Spanish" }, { "Z1K1": "Z11", "Z11K1": "Z1003", "Z11K2": "definición de un superlativo, en español" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Example: Australia es el continente más plano de la tierra." }, { "Z1K1": "Z11", "Z11K1": "Z1003", "Z11K2": "Example: Australia es el continente más plano de la tierra." } ] } } dxsq2642ykyebmku2w8apdwk22s1wfj 285648 285647 2026-06-22T16:25:46Z Strobilomyces 193 Added Z36780 to the approved list of implementations 285648 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36778" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z6091", "Z17K2": "Z36778K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "entity" }, { "Z1K1": "Z11", "Z11K1": "Z1003", "Z11K2": "entidad" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z6091", "Z17K2": "Z36778K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "adjective" }, { "Z1K1": "Z11", "Z11K1": "Z1003", "Z11K2": "adjetivo" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z6091", "Z17K2": "Z36778K3", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "class" }, { "Z1K1": "Z11", "Z11K1": "Z1003", "Z11K2": "clase" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z6005", "Z17K2": "Z36778K4", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "location" }, { "Z1K1": "Z11", "Z11K1": "Z1003", "Z11K2": "ubicación" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z60", "Z17K2": "Z36778K5", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "language" }, { "Z1K1": "Z11", "Z11K1": "Z1003", "Z11K2": "idioma" } ] } } ], "Z8K2": "Z11", "Z8K3": [ "Z20", "Z36779" ], "Z8K4": [ "Z14", "Z36780" ], "Z8K5": "Z36778" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "superlative definition, in Spanish" }, { "Z1K1": "Z11", "Z11K1": "Z1003", "Z11K2": "definición de un superlativo, en español" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Example: Australia es el continente más plano de la tierra." }, { "Z1K1": "Z11", "Z11K1": "Z1003", "Z11K2": "Example: Australia es el continente más plano de la tierra." } ] } } ofyipylehrfdjruycgl5epwqky0na9n 285649 285648 2026-06-22T16:32:18Z Strobilomyces 193 Removed Z36780 from the approved list of implementations 285649 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36778" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z6091", "Z17K2": "Z36778K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "entity" }, { "Z1K1": "Z11", "Z11K1": "Z1003", "Z11K2": "entidad" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z6091", "Z17K2": "Z36778K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "adjective" }, { "Z1K1": "Z11", "Z11K1": "Z1003", "Z11K2": "adjetivo" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z6091", "Z17K2": "Z36778K3", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "class" }, { "Z1K1": "Z11", "Z11K1": "Z1003", "Z11K2": "clase" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z6005", "Z17K2": "Z36778K4", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "location" }, { "Z1K1": "Z11", "Z11K1": "Z1003", "Z11K2": "ubicación" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z60", "Z17K2": "Z36778K5", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "language" }, { "Z1K1": "Z11", "Z11K1": "Z1003", "Z11K2": "idioma" } ] } } ], "Z8K2": "Z11", "Z8K3": [ "Z20", "Z36779" ], "Z8K4": [ "Z14" ], "Z8K5": "Z36778" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "superlative definition, in Spanish" }, { "Z1K1": "Z11", "Z11K1": "Z1003", "Z11K2": "definición de un superlativo, en español" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Example: Australia es el continente más plano de la tierra." }, { "Z1K1": "Z11", "Z11K1": "Z1003", "Z11K2": "Example: Australia es el continente más plano de la tierra." } ] } } dxsq2642ykyebmku2w8apdwk22s1wfj 285650 285649 2026-06-22T16:32:58Z Strobilomyces 193 removed unnecessary argument 285650 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36778" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z6091", "Z17K2": "Z36778K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "entity" }, { "Z1K1": "Z11", "Z11K1": "Z1003", "Z11K2": "entidad" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z6091", "Z17K2": "Z36778K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "adjective" }, { "Z1K1": "Z11", "Z11K1": "Z1003", "Z11K2": "adjetivo" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z6091", "Z17K2": "Z36778K3", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "class" }, { "Z1K1": "Z11", "Z11K1": "Z1003", "Z11K2": "clase" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z6005", "Z17K2": "Z36778K4", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "location" }, { "Z1K1": "Z11", "Z11K1": "Z1003", "Z11K2": "ubicación" } ] } } ], "Z8K2": "Z11", "Z8K3": [ "Z20" ], "Z8K4": [ "Z14" ], "Z8K5": "Z36778" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "superlative definition, in Spanish" }, { "Z1K1": "Z11", "Z11K1": "Z1003", "Z11K2": "definición de un superlativo, en español" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Example: Australia es el continente más plano de la tierra." }, { "Z1K1": "Z11", "Z11K1": "Z1003", "Z11K2": "Example: Australia es el continente más plano de la tierra." } ] } } jr7z86u55wp94i33ug7k6v68o0dq7w7 285651 285650 2026-06-22T16:34:17Z Strobilomyces 193 Added Z36780 to the approved list of implementations 285651 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36778" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z6091", "Z17K2": "Z36778K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "entity" }, { "Z1K1": "Z11", "Z11K1": "Z1003", "Z11K2": "entidad" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z6091", "Z17K2": "Z36778K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "adjective" }, { "Z1K1": "Z11", "Z11K1": "Z1003", "Z11K2": "adjetivo" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z6091", "Z17K2": "Z36778K3", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "class" }, { "Z1K1": "Z11", "Z11K1": "Z1003", "Z11K2": "clase" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z6005", "Z17K2": "Z36778K4", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "location" }, { "Z1K1": "Z11", "Z11K1": "Z1003", "Z11K2": "ubicación" } ] } } ], "Z8K2": "Z11", "Z8K3": [ "Z20" ], "Z8K4": [ "Z14", "Z36780" ], "Z8K5": "Z36778" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "superlative definition, in Spanish" }, { "Z1K1": "Z11", "Z11K1": "Z1003", "Z11K2": "definición de un superlativo, en español" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Example: Australia es el continente más plano de la tierra." }, { "Z1K1": "Z11", "Z11K1": "Z1003", "Z11K2": "Example: Australia es el continente más plano de la tierra." } ] } } if3k1zukbqqlzueu8urzanai7nk0c0o 285652 285651 2026-06-22T16:34:21Z Strobilomyces 193 Added Z36779 to the approved list of test cases 285652 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36778" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z6091", "Z17K2": "Z36778K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "entity" }, { "Z1K1": "Z11", "Z11K1": "Z1003", "Z11K2": "entidad" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z6091", "Z17K2": "Z36778K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "adjective" }, { "Z1K1": "Z11", "Z11K1": "Z1003", "Z11K2": "adjetivo" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z6091", "Z17K2": "Z36778K3", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "class" }, { "Z1K1": "Z11", "Z11K1": "Z1003", "Z11K2": "clase" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z6005", "Z17K2": "Z36778K4", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "location" }, { "Z1K1": "Z11", "Z11K1": "Z1003", "Z11K2": "ubicación" } ] } } ], "Z8K2": "Z11", "Z8K3": [ "Z20", "Z36779" ], "Z8K4": [ "Z14", "Z36780" ], "Z8K5": "Z36778" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "superlative definition, in Spanish" }, { "Z1K1": "Z11", "Z11K1": "Z1003", "Z11K2": "definición de un superlativo, en español" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Example: Australia es el continente más plano de la tierra." }, { "Z1K1": "Z11", "Z11K1": "Z1003", "Z11K2": "Example: Australia es el continente más plano de la tierra." } ] } } 4j0fjfv78248pc3oyktsptkza9kvbg0 Z36779 0 86343 285644 2026-06-22T15:04:18Z Strobilomyces 193 created test 285644 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36779" }, "Z2K2": { "Z1K1": "Z20", "Z20K1": "Z36778", "Z20K2": { "Z1K1": "Z7", "Z7K1": "Z36778", "Z36778K1": { "Z1K1": "Z6091", "Z6091K1": "Q408" }, "Z36778K2": { "Z1K1": "Z6091", "Z6091K1": "Q18389975" }, "Z36778K3": { "Z1K1": "Z6091", "Z6091K1": "Q5107" }, "Z36778K4": { "Z1K1": "Z7", "Z7K1": "Z6825", "Z6825K1": { "Z1K1": "Z6095", "Z6095K1": "L21961" } }, "Z36778K5": "Z1003" }, "Z20K3": { "Z1K1": "Z7", "Z7K1": "Z14392", "Z14392K2": { "Z1K1": "Z11", "Z11K1": { "Z1K1": "Z9", "Z9K1": "" }, "Z11K2": "Australia es el continente más plano de la tierra." } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Australia es el continente más plano de la tierra" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } 9tox8ko8s7iwgfdka2ydfunou5p9xcg Z36780 0 86344 285645 2026-06-22T16:14:09Z Strobilomyces 193 created 285645 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36780" }, "Z2K2": { "Z1K1": "Z14", "Z14K1": "Z36778", "Z14K2": { "Z1K1": "Z7", "Z7K1": "Z26107", "Z26107K1": "Z1003", "Z26107K2": { "Z1K1": "Z7", "Z7K1": "Z21394", "Z21394K1": [ "Z6", { "Z1K1": "Z7", "Z7K1": "Z36270", "Z36270K1": { "Z1K1": "Z18", "Z18K1": "Z36778K1" }, "Z36270K2": "Z1003" }, " es ", { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z20643", "Z20643K1": { "Z1K1": "Z7", "Z7K1": "Z22696", "Z22696K1": { "Z1K1": "Z18", "Z18K1": "Z36778K3" }, "Z22696K2": "Z1003" } }, "Z802K2": { "Z1K1": "Z7", "Z7K1": "Z21394", "Z21394K1": [ "Z6", "la ", { "Z1K1": "Z7", "Z7K1": "Z19241", "Z19241K1": { "Z1K1": "Z18", "Z18K1": "Z36778K3" }, "Z19241K2": { "Z1K1": "Z7", "Z7K1": "Z15142", "Z15142K1": [ "Z1", { "Z1K1": "Z6091", "Z6091K1": "Q110786" } ] } }, " más ", { "Z1K1": "Z7", "Z7K1": "Z19241", "Z19241K1": { "Z1K1": "Z18", "Z18K1": "Z36778K2" }, "Z19241K2": [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q110786" }, { "Z1K1": "Z6091", "Z6091K1": "Q1775415" } ] } ] }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z21394", "Z21394K1": [ "Z6", "el ", { "Z1K1": "Z7", "Z7K1": "Z19241", "Z19241K1": { "Z1K1": "Z18", "Z18K1": "Z36778K3" }, "Z19241K2": [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q110786" } ] }, " más ", { "Z1K1": "Z7", "Z7K1": "Z19241", "Z19241K1": { "Z1K1": "Z18", "Z18K1": "Z36778K2" }, "Z19241K2": [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q110786" }, { "Z1K1": "Z6091", "Z6091K1": "Q499327" } ] } ] } }, " en ", { "Z1K1": "Z7", "Z7K1": "Z36270", "Z36270K1": { "Z1K1": "Z18", "Z18K1": "Z36778K4" }, "Z36270K2": "Z1003" } ] } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } 24tpazewbfuwub8j4e5j09kcmc1td2t 285646 285645 2026-06-22T16:16:39Z Strobilomyces 193 + en label 285646 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36780" }, "Z2K2": { "Z1K1": "Z14", "Z14K1": "Z36778", "Z14K2": { "Z1K1": "Z7", "Z7K1": "Z26107", "Z26107K1": "Z1003", "Z26107K2": { "Z1K1": "Z7", "Z7K1": "Z21394", "Z21394K1": [ "Z6", { "Z1K1": "Z7", "Z7K1": "Z36270", "Z36270K1": { "Z1K1": "Z18", "Z18K1": "Z36778K1" }, "Z36270K2": "Z1003" }, " es ", { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z20643", "Z20643K1": { "Z1K1": "Z7", "Z7K1": "Z22696", "Z22696K1": { "Z1K1": "Z18", "Z18K1": "Z36778K3" }, "Z22696K2": "Z1003" } }, "Z802K2": { "Z1K1": "Z7", "Z7K1": "Z21394", "Z21394K1": [ "Z6", "la ", { "Z1K1": "Z7", "Z7K1": "Z19241", "Z19241K1": { "Z1K1": "Z18", "Z18K1": "Z36778K3" }, "Z19241K2": { "Z1K1": "Z7", "Z7K1": "Z15142", "Z15142K1": [ "Z1", { "Z1K1": "Z6091", "Z6091K1": "Q110786" } ] } }, " más ", { "Z1K1": "Z7", "Z7K1": "Z19241", "Z19241K1": { "Z1K1": "Z18", "Z18K1": "Z36778K2" }, "Z19241K2": [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q110786" }, { "Z1K1": "Z6091", "Z6091K1": "Q1775415" } ] } ] }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z21394", "Z21394K1": [ "Z6", "el ", { "Z1K1": "Z7", "Z7K1": "Z19241", "Z19241K1": { "Z1K1": "Z18", "Z18K1": "Z36778K3" }, "Z19241K2": [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q110786" } ] }, " más ", { "Z1K1": "Z7", "Z7K1": "Z19241", "Z19241K1": { "Z1K1": "Z18", "Z18K1": "Z36778K2" }, "Z19241K2": [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q110786" }, { "Z1K1": "Z6091", "Z6091K1": "Q499327" } ] } ] } }, " en ", { "Z1K1": "Z7", "Z7K1": "Z36270", "Z36270K1": { "Z1K1": "Z18", "Z18K1": "Z36778K4" }, "Z36270K2": "Z1003" } ] } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "superlative definition, in Spanish, composition" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Example: Australia es el continente más plano de la tierra" } ] } } 73xexavi8zxpweckn39hmvxo32uniwk Z36781 0 86345 285654 2026-06-22T16:47:35Z Denny 81 285654 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36781" }, "Z2K2": { "Z1K1": "Z36462", "Z36462K1": "Z1002", "Z36462K2": { "Z1K1": "Z6091", "Z6091K1": "Q576271" }, "Z36462K3": [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q53997857" }, { "Z1K1": "Z6091", "Z6091K1": "Q110786" } ], "Z36462K4": [ "Z36463", { "Z1K1": "Z36463", "Z36463K1": [ "Z6091" ], "Z36463K2": [ "Z89", { "Z1K1": "Z89", "Z89K1": "a" } ] } ] }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "English indefinite singular determiner" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "\"a\" or \"an\"" } ] } } m390hgouoe77p2clm8xm7gtkuzwpmxr 285655 285654 2026-06-22T16:47:50Z Denny 81 285655 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36781" }, "Z2K2": { "Z1K1": "Z36462", "Z36462K1": "Z1002", "Z36462K2": { "Z1K1": "Z6091", "Z6091K1": "Q576271" }, "Z36462K3": [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q53997857" }, { "Z1K1": "Z6091", "Z6091K1": "Q110786" } ], "Z36462K4": [ "Z36463", { "Z1K1": "Z36463", "Z36463K1": [ "Z6091" ], "Z36463K2": [ "Z89", { "Z1K1": "Z89", "Z89K1": "a" } ] } ] }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "English indefinite singular determiner" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31", { "Z1K1": "Z31", "Z31K1": "Z1002", "Z31K2": [ "Z6", "a", "an" ] } ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "\"a\" or \"an\"" } ] } } f0jjyed3g98ax6iw3206uao5a9j5nqn 285680 285655 2026-06-22T17:12:02Z Denny 81 285680 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36781" }, "Z2K2": { "Z1K1": "Z36462", "Z36462K1": "Z1002", "Z36462K2": { "Z1K1": "Z6091", "Z6091K1": "Q576271" }, "Z36462K3": [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q110786" } ], "Z36462K4": [ "Z36463", { "Z1K1": "Z36463", "Z36463K1": [ "Z6091" ], "Z36463K2": [ "Z89", { "Z1K1": "Z89", "Z89K1": "a" } ] } ] }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "English indefinite singular determiner" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31", { "Z1K1": "Z31", "Z31K1": "Z1002", "Z31K2": [ "Z6", "a", "an" ] } ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "\"a\" or \"an\"" } ] } } d8wsuvrg1eho3n8s3z4wj3wpvaoeikc Talk:Z35273 1 86346 285657 2026-06-22T16:48:57Z So9q 3791 /* String as output? */ new section 285657 wikitext text/x-wiki == String as output? == See https://www.wikifunctions.org/wiki/Wikifunctions:Type_proposals/Geometrical_point One of the commenters there mention using rational numbers instead. So a new rational point proposal might be a good idea? [[User:So9q|So9q]] ([[User talk:So9q|talk]]) 16:48, 22 June 2026 (UTC) n7fmon99bg9liusjibgxkfbtpymrhnt Z36782 0 86347 285658 2026-06-22T16:50:17Z Denny 81 285658 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36782" }, "Z2K2": { "Z1K1": "Z36462", "Z36462K1": "Z1002", "Z36462K2": { "Z1K1": "Z6091", "Z6091K1": "Q576271" }, "Z36462K3": [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q53997857" }, { "Z1K1": "Z6091", "Z6091K1": "Q146786" } ], "Z36462K4": [ "Z36463", { "Z1K1": "Z36463", "Z36463K1": [ "Z6091" ], "Z36463K2": [ "Z89", { "Z1K1": "Z89", "Z89K1": "" } ] } ] }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "English indefinite plural determiner" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "That one isn't actually lexicalized in English." } ] } } 6bdcegas86gjhpyasi49uxwndiesio7 285660 285658 2026-06-22T16:51:19Z Denny 81 285660 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36782" }, "Z2K2": { "Z1K1": "Z36462", "Z36462K1": "Z1002", "Z36462K2": { "Z1K1": "Z6091", "Z6091K1": "Q576271" }, "Z36462K3": [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q53997857" }, { "Z1K1": "Z6091", "Z6091K1": "Q146786" } ], "Z36462K4": [ "Z36463", { "Z1K1": "Z36463", "Z36463K1": [ "Z6091" ], "Z36463K2": [ "Z89", { "Z1K1": "Z89", "Z89K1": "" } ] } ] }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "English indefinite plural determiner" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31", { "Z1K1": "Z31", "Z31K1": "Z1002", "Z31K2": [ "Z6", "plural a" ] } ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "That one isn't actually lexicalized in English." } ] } } bstv0mu05k4pgyvg2f03riqdcklb5uo 285681 285660 2026-06-22T17:12:27Z Denny 81 285681 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36782" }, "Z2K2": { "Z1K1": "Z36462", "Z36462K1": "Z1002", "Z36462K2": { "Z1K1": "Z6091", "Z6091K1": "Q576271" }, "Z36462K3": [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q146786" } ], "Z36462K4": [ "Z36463", { "Z1K1": "Z36463", "Z36463K1": [ "Z6091" ], "Z36463K2": [ "Z89", { "Z1K1": "Z89", "Z89K1": "" } ] } ] }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "English indefinite plural determiner" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31", { "Z1K1": "Z31", "Z31K1": "Z1002", "Z31K2": [ "Z6", "plural a" ] } ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "That one isn't actually lexicalized in English." } ] } } ahlcprjdkspji1vdjxqzm6xxefa05p0 Z36783 0 86348 285661 2026-06-22T16:51:52Z Denny 81 285661 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36783" }, "Z2K2": { "Z1K1": "Z36462", "Z36462K1": "Z1002", "Z36462K2": { "Z1K1": "Z6091", "Z6091K1": "Q576271" }, "Z36462K3": [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q53997851" }, { "Z1K1": "Z6091", "Z6091K1": "Q110786" } ], "Z36462K4": [ "Z36463", { "Z1K1": "Z36463", "Z36463K1": [ "Z6091" ], "Z36463K2": [ "Z89", { "Z1K1": "Z89", "Z89K1": "the" } ] } ] }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "English definite singular determiner" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31", { "Z1K1": "Z31", "Z31K1": "Z1002", "Z31K2": [ "Z6", "the" ] } ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "\"the\"" } ] } } 7977apws0icuhi8fwaunkq6cpvqnxyh 285682 285661 2026-06-22T17:12:45Z Denny 81 285682 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36783" }, "Z2K2": { "Z1K1": "Z36462", "Z36462K1": "Z1002", "Z36462K2": { "Z1K1": "Z6091", "Z6091K1": "Q576271" }, "Z36462K3": [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q110786" } ], "Z36462K4": [ "Z36463", { "Z1K1": "Z36463", "Z36463K1": [ "Z6091" ], "Z36463K2": [ "Z89", { "Z1K1": "Z89", "Z89K1": "the" } ] } ] }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "English definite singular determiner" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31", { "Z1K1": "Z31", "Z31K1": "Z1002", "Z31K2": [ "Z6", "the" ] } ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "\"the\"" } ] } } 04z4vdcpy0pvkppy25a4otj0o9wu098 Z36784 0 86349 285663 2026-06-22T16:53:15Z Denny 81 285663 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36784" }, "Z2K2": { "Z1K1": "Z36462", "Z36462K1": { "Z1K1": "Z9", "Z9K1": "" }, "Z36462K2": { "Z1K1": "Z6091", "Z6091K1": "" }, "Z36462K3": [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q53997851" }, { "Z1K1": "Z6091", "Z6091K1": "Q146786" } ], "Z36462K4": [ "Z36463", { "Z1K1": "Z36463", "Z36463K1": [ "Z6091" ], "Z36463K2": [ "Z89", { "Z1K1": "Z89", "Z89K1": "the" } ] } ] }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "English definite plural determiner" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31", { "Z1K1": "Z31", "Z31K1": "Z1002", "Z31K2": [ "Z6", "plural the" ] } ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "\"the\", but for plural (e.g. \"the stars\")" } ] } } 2oflcc4l8bs1xuythzebmbfpyssvgbr 285664 285663 2026-06-22T16:53:35Z Denny 81 285664 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36784" }, "Z2K2": { "Z1K1": "Z36462", "Z36462K1": "Z1002", "Z36462K2": { "Z1K1": "Z6091", "Z6091K1": "Q576271" }, "Z36462K3": [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q53997851" }, { "Z1K1": "Z6091", "Z6091K1": "Q146786" } ], "Z36462K4": [ "Z36463", { "Z1K1": "Z36463", "Z36463K1": [ "Z6091" ], "Z36463K2": [ "Z89", { "Z1K1": "Z89", "Z89K1": "the" } ] } ] }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "English definite plural determiner" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31", { "Z1K1": "Z31", "Z31K1": "Z1002", "Z31K2": [ "Z6", "plural the" ] } ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "\"the\", but for plural (e.g. \"the stars\")" } ] } } qirf0odyowuti3pl0x6jt9c9dn9m3xh 285683 285664 2026-06-22T17:13:03Z Denny 81 285683 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36784" }, "Z2K2": { "Z1K1": "Z36462", "Z36462K1": "Z1002", "Z36462K2": { "Z1K1": "Z6091", "Z6091K1": "Q576271" }, "Z36462K3": [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q146786" } ], "Z36462K4": [ "Z36463", { "Z1K1": "Z36463", "Z36463K1": [ "Z6091" ], "Z36463K2": [ "Z89", { "Z1K1": "Z89", "Z89K1": "the" } ] } ] }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "English definite plural determiner" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31", { "Z1K1": "Z31", "Z31K1": "Z1002", "Z31K2": [ "Z6", "plural the" ] } ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "\"the\", but for plural (e.g. \"the stars\")" } ] } } 69dnb53xw4pd2z5pjwx240bcjfd4wwm Z36785 0 86350 285665 2026-06-22T16:55:24Z Denny 81 285665 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36785" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z28516", "Z17K2": "Z36785K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "definiteness" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z26934", "Z17K2": "Z36785K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "number" } ] } } ], "Z8K2": "Z36462", "Z8K3": [ "Z20" ], "Z8K4": [ "Z14" ], "Z8K5": "Z36785" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "English grammatic determiner" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Returns a determiner based on definiteness and number." } ] } } mcrn6622pf0yyx7rvqxfnpeyx00lma4 285667 285665 2026-06-22T16:56:23Z Denny 81 Added Z36786 to the approved list of test cases 285667 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36785" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z28516", "Z17K2": "Z36785K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "definiteness" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z26934", "Z17K2": "Z36785K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "number" } ] } } ], "Z8K2": "Z36462", "Z8K3": [ "Z20", "Z36786" ], "Z8K4": [ "Z14" ], "Z8K5": "Z36785" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "English grammatic determiner" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Returns a determiner based on definiteness and number." } ] } } pp5d7q8z5s54lw4n74y7y8diukpaz22 285669 285667 2026-06-22T16:57:09Z Denny 81 Added Z36787 to the approved list of test cases 285669 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36785" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z28516", "Z17K2": "Z36785K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "definiteness" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z26934", "Z17K2": "Z36785K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "number" } ] } } ], "Z8K2": "Z36462", "Z8K3": [ "Z20", "Z36786", "Z36787" ], "Z8K4": [ "Z14" ], "Z8K5": "Z36785" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "English grammatic determiner" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Returns a determiner based on definiteness and number." } ] } } 5rwfkn49pftffzpovk2qbmm07m9t3kv 285672 285669 2026-06-22T16:57:49Z Denny 81 Added Z36788 to the approved list of test cases 285672 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36785" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z28516", "Z17K2": "Z36785K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "definiteness" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z26934", "Z17K2": "Z36785K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "number" } ] } } ], "Z8K2": "Z36462", "Z8K3": [ "Z20", "Z36786", "Z36787", "Z36788" ], "Z8K4": [ "Z14" ], "Z8K5": "Z36785" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "English grammatic determiner" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Returns a determiner based on definiteness and number." } ] } } kq46x4wls9wxzpwbes9t2fsq05pheph 285674 285672 2026-06-22T16:58:25Z Denny 81 Added Z36789 to the approved list of test cases 285674 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36785" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z28516", "Z17K2": "Z36785K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "definiteness" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z26934", "Z17K2": "Z36785K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "number" } ] } } ], "Z8K2": "Z36462", "Z8K3": [ "Z20", "Z36786", "Z36787", "Z36788", "Z36789" ], "Z8K4": [ "Z14" ], "Z8K5": "Z36785" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "English grammatic determiner" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Returns a determiner based on definiteness and number." } ] } } 4infau7g6lwda54a2trh0ytolhcxjz9 285677 285674 2026-06-22T17:04:29Z Denny 81 Added Z36790 to the approved list of implementations 285677 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36785" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z28516", "Z17K2": "Z36785K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "definiteness" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z26934", "Z17K2": "Z36785K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "number" } ] } } ], "Z8K2": "Z36462", "Z8K3": [ "Z20", "Z36786", "Z36787", "Z36788", "Z36789" ], "Z8K4": [ "Z14", "Z36790" ], "Z8K5": "Z36785" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "English grammatic determiner" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Returns a determiner based on definiteness and number." } ] } } tsodyo0f5hlmq4uwl0kd37pcz1km5f1 Z36786 0 86351 285666 2026-06-22T16:56:15Z Denny 81 285666 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36786" }, "Z2K2": { "Z1K1": "Z20", "Z20K1": "Z36785", "Z20K2": { "Z1K1": "Z7", "Z7K1": "Z36785", "Z36785K1": { "Z1K1": "Z28516", "Z28516K1": { "Z1K1": "Z6091", "Z6091K1": "Q53997851" } }, "Z36785K2": { "Z1K1": "Z26934", "Z26934K1": { "Z1K1": "Z6091", "Z6091K1": "Q110786" } } }, "Z20K3": { "Z1K1": "Z7", "Z7K1": "Z36717", "Z36717K2": "Z36783" } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "English definite singular" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } qq7j3v20haje2lsvc65kp0vgp9xmytd Z36787 0 86352 285668 2026-06-22T16:56:58Z Denny 81 285668 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36787" }, "Z2K2": { "Z1K1": "Z20", "Z20K1": "Z36785", "Z20K2": { "Z1K1": "Z7", "Z7K1": "Z36785", "Z36785K1": { "Z1K1": "Z28516", "Z28516K1": { "Z1K1": "Z6091", "Z6091K1": "Q53997851" } }, "Z36785K2": { "Z1K1": "Z26934", "Z26934K1": { "Z1K1": "Z6091", "Z6091K1": "Q146786" } } }, "Z20K3": { "Z1K1": "Z7", "Z7K1": "Z36717", "Z36717K2": "Z36784" } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "English definite plural" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } q4o1gmkko41y511o9hro8lwrcsvkulb Z36788 0 86353 285671 2026-06-22T16:57:40Z Denny 81 285671 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36788" }, "Z2K2": { "Z1K1": "Z20", "Z20K1": "Z36785", "Z20K2": { "Z1K1": "Z7", "Z7K1": "Z36785", "Z36785K1": { "Z1K1": "Z28516", "Z28516K1": { "Z1K1": "Z6091", "Z6091K1": "Q53997857" } }, "Z36785K2": { "Z1K1": "Z26934", "Z26934K1": { "Z1K1": "Z6091", "Z6091K1": "Q110786" } } }, "Z20K3": { "Z1K1": "Z7", "Z7K1": "Z36717", "Z36717K2": "Z36781" } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "English indefinite singular" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } 56qwqdgbtips4655gj2kcivedzp7j0p Z36789 0 86354 285673 2026-06-22T16:58:15Z Denny 81 285673 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36789" }, "Z2K2": { "Z1K1": "Z20", "Z20K1": "Z36785", "Z20K2": { "Z1K1": "Z7", "Z7K1": "Z36785", "Z36785K1": { "Z1K1": "Z28516", "Z28516K1": { "Z1K1": "Z6091", "Z6091K1": "Q53997857" } }, "Z36785K2": { "Z1K1": "Z26934", "Z26934K1": { "Z1K1": "Z6091", "Z6091K1": "Q146786" } } }, "Z20K3": { "Z1K1": "Z7", "Z7K1": "Z36717", "Z36717K2": "Z36782" } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "English indefinite plural" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } 97tmcgau1u9lsie4ptjy1xjldz8lyce Z36790 0 86355 285676 2026-06-22T17:04:15Z Denny 81 285676 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36790" }, "Z2K2": { "Z1K1": "Z14", "Z14K1": "Z36785", "Z14K2": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z6894", "Z6894K1": { "Z1K1": "Z18", "Z18K1": "Z36785K1" }, "Z6894K2": { "Z1K1": "Z28516", "Z28516K1": { "Z1K1": "Z6091", "Z6091K1": "Q53997851" } } }, "Z802K2": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z6894", "Z6894K1": { "Z1K1": "Z18", "Z18K1": "Z36785K2" }, "Z6894K2": { "Z1K1": "Z26934", "Z26934K1": { "Z1K1": "Z6091", "Z6091K1": "Q110786" } } }, "Z802K2": "Z36783", "Z802K3": "Z36784" }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z6894", "Z6894K1": { "Z1K1": "Z18", "Z18K1": "Z36785K2" }, "Z6894K2": { "Z1K1": "Z26934", "Z26934K1": { "Z1K1": "Z6091", "Z6091K1": "Q110786" } } }, "Z802K2": "Z36781", "Z802K3": "Z36782" } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "if enum, twice" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } ioxxtffexg0d70rv6chsdxc0kapkwfy Z36791 0 86356 285678 2026-06-22T17:11:03Z Denny 81 285678 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36791" }, "Z2K2": { "Z1K1": "Z36462", "Z36462K1": "Z1002", "Z36462K2": { "Z1K1": "Z6091", "Z6091K1": "Q576271" }, "Z36462K3": [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q146786" } ], "Z36462K4": [ "Z36463", { "Z1K1": "Z36463", "Z36463K1": [ "Z6091" ], "Z36463K2": [ "Z89", { "Z1K1": "Z89", "Z89K1": "some" } ] } ] }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "English determiner some" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } 4pwps63usoddfal2f7ekgzashqkv644 285684 285678 2026-06-22T17:13:16Z Denny 81 285684 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36791" }, "Z2K2": { "Z1K1": "Z36462", "Z36462K1": "Z1002", "Z36462K2": { "Z1K1": "Z6091", "Z6091K1": "Q576271" }, "Z36462K3": [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q146786" } ], "Z36462K4": [ "Z36463", { "Z1K1": "Z36463", "Z36463K1": [ "Z6091" ], "Z36463K2": [ "Z89", { "Z1K1": "Z89", "Z89K1": "some" } ] } ] }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "English determiner some" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "\"some\"" } ] } } lhajsp4inu9svnev7onmjnnu3qah8fq Z36792 0 86357 285685 2026-06-22T17:17:42Z Denny 81 285685 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36792" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z13518", "Z17K2": "Z36792K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "number" } ] } } ], "Z8K2": "Z36462", "Z8K3": [ "Z20" ], "Z8K4": [ "Z14" ], "Z8K5": "Z36792" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "English determiner from number" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "turns a natural number into an English determiner" } ] } } lxmcsbamzl5hyg7f7koox6ilvoe0wey 285687 285685 2026-06-22T17:18:45Z Denny 81 Added Z36793 to the approved list of test cases 285687 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36792" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z13518", "Z17K2": "Z36792K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "number" } ] } } ], "Z8K2": "Z36462", "Z8K3": [ "Z20", "Z36793" ], "Z8K4": [ "Z14" ], "Z8K5": "Z36792" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "English determiner from number" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "turns a natural number into an English determiner" } ] } } epy36q5ryavhv655ya9wcprhzvzmdeo 285689 285687 2026-06-22T17:19:35Z Denny 81 Added Z36794 to the approved list of test cases 285689 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36792" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z13518", "Z17K2": "Z36792K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "number" } ] } } ], "Z8K2": "Z36462", "Z8K3": [ "Z20", "Z36793", "Z36794" ], "Z8K4": [ "Z14" ], "Z8K5": "Z36792" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "English determiner from number" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "turns a natural number into an English determiner" } ] } } ssh8ug1g6hyv2nr4ehibqmpos9kvvbf 285691 285689 2026-06-22T17:20:35Z Denny 81 Added Z36795 to the approved list of test cases 285691 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36792" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z13518", "Z17K2": "Z36792K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "number" } ] } } ], "Z8K2": "Z36462", "Z8K3": [ "Z20", "Z36793", "Z36794", "Z36795" ], "Z8K4": [ "Z14" ], "Z8K5": "Z36792" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "English determiner from number" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "turns a natural number into an English determiner" } ] } } pgn5yumlqmtpc36l5i07v936watbd6o 285693 285691 2026-06-22T17:22:12Z Denny 81 Added Z36796 to the approved list of test cases 285693 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36792" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z13518", "Z17K2": "Z36792K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "number" } ] } } ], "Z8K2": "Z36462", "Z8K3": [ "Z20", "Z36793", "Z36794", "Z36795", "Z36796" ], "Z8K4": [ "Z14" ], "Z8K5": "Z36792" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "English determiner from number" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "turns a natural number into an English determiner" } ] } } i6s4w1fx28w1rlupu4kh044f53xgovo 285696 285693 2026-06-22T17:24:26Z Denny 81 Added Z36797 to the approved list of implementations 285696 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36792" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z13518", "Z17K2": "Z36792K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "number" } ] } } ], "Z8K2": "Z36462", "Z8K3": [ "Z20", "Z36793", "Z36794", "Z36795", "Z36796" ], "Z8K4": [ "Z14", "Z36797" ], "Z8K5": "Z36792" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "English determiner from number" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "turns a natural number into an English determiner" } ] } } qyxf9nl2fum8tlmobzrmm38b61y55q3 Z36793 0 86358 285686 2026-06-22T17:18:35Z Denny 81 285686 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36793" }, "Z2K2": { "Z1K1": "Z20", "Z20K1": "Z36792", "Z20K2": { "Z1K1": "Z7", "Z7K1": "Z36792", "Z36792K1": { "Z1K1": "Z13518", "Z13518K1": "0" } }, "Z20K3": { "Z1K1": "Z7", "Z7K1": "Z36717", "Z36717K2": { "Z1K1": "Z36462", "Z36462K1": "Z1002", "Z36462K2": { "Z1K1": "Z6091", "Z6091K1": "Q576271" }, "Z36462K3": [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q146786" } ], "Z36462K4": [ "Z36463", { "Z1K1": "Z36463", "Z36463K1": [ "Z6091" ], "Z36463K2": [ "Z89", { "Z1K1": "Z89", "Z89K1": "zero" } ] } ] } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "0 = zero (plural)" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } mmjru5t3cm99q9pgsivzyguyy30il6d Z36794 0 86359 285688 2026-06-22T17:19:21Z Denny 81 285688 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36794" }, "Z2K2": { "Z1K1": "Z20", "Z20K1": "Z36792", "Z20K2": { "Z1K1": "Z7", "Z7K1": "Z36792", "Z36792K1": { "Z1K1": "Z13518", "Z13518K1": "1" } }, "Z20K3": { "Z1K1": "Z7", "Z7K1": "Z36717", "Z36717K2": { "Z1K1": "Z36462", "Z36462K1": "Z1002", "Z36462K2": { "Z1K1": "Z6091", "Z6091K1": "Q576271" }, "Z36462K3": [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q110786" } ], "Z36462K4": [ "Z36463", { "Z1K1": "Z36463", "Z36463K1": [ "Z6091" ], "Z36463K2": [ "Z89", { "Z1K1": "Z89", "Z89K1": "one" } ] } ] } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "1 = one (singular)" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } tndmbvlj81uzm99mfo2i0og849t1wa3 Z36795 0 86360 285690 2026-06-22T17:20:27Z Denny 81 285690 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36795" }, "Z2K2": { "Z1K1": "Z20", "Z20K1": "Z36792", "Z20K2": { "Z1K1": "Z7", "Z7K1": "Z36792", "Z36792K1": { "Z1K1": "Z13518", "Z13518K1": "2" } }, "Z20K3": { "Z1K1": "Z7", "Z7K1": "Z36717", "Z36717K2": { "Z1K1": "Z36462", "Z36462K1": "Z1002", "Z36462K2": { "Z1K1": "Z6091", "Z6091K1": "Q576271" }, "Z36462K3": [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q146786" } ], "Z36462K4": [ "Z36463", { "Z1K1": "Z36463", "Z36463K1": [ "Z6091" ], "Z36463K2": [ "Z89", { "Z1K1": "Z89", "Z89K1": "two" } ] } ] } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "2 = two (plural)" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } 7p714vw7hd3cxqdpy6agur6jize7y1n Z36796 0 86361 285692 2026-06-22T17:22:03Z Denny 81 285692 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36796" }, "Z2K2": { "Z1K1": "Z20", "Z20K1": "Z36792", "Z20K2": { "Z1K1": "Z7", "Z7K1": "Z36792", "Z36792K1": { "Z1K1": "Z13518", "Z13518K1": "42" } }, "Z20K3": { "Z1K1": "Z7", "Z7K1": "Z36717", "Z36717K2": { "Z1K1": "Z36462", "Z36462K1": "Z1002", "Z36462K2": { "Z1K1": "Z6091", "Z6091K1": "Q576271" }, "Z36462K3": [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q146786" } ], "Z36462K4": [ "Z36463", { "Z1K1": "Z36463", "Z36463K1": [ "Z6091" ], "Z36463K2": [ "Z89", { "Z1K1": "Z89", "Z89K1": "forty-two" } ] } ] } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "42 = forty-two (plural)" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } sgreawi4rq7maexful2o4grpawthd3f Z36797 0 86362 285695 2026-06-22T17:24:13Z Denny 81 285695 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36797" }, "Z2K2": { "Z1K1": "Z14", "Z14K1": "Z36792", "Z14K2": { "Z1K1": "Z36462", "Z36462K1": "Z1002", "Z36462K2": { "Z1K1": "Z6091", "Z6091K1": "Q576271" }, "Z36462K3": [ "Z6091", { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z31547", "Z31547K1": { "Z1K1": "Z18", "Z18K1": "Z36792K1" } }, "Z802K2": { "Z1K1": "Z6091", "Z6091K1": "Q110786" }, "Z802K3": { "Z1K1": "Z6091", "Z6091K1": "Q146786" } } ], "Z36462K4": [ "Z36463", { "Z1K1": "Z36463", "Z36463K1": [ "Z6091" ], "Z36463K2": [ "Z89", { "Z1K1": "Z7", "Z7K1": "Z27868", "Z27868K1": { "Z1K1": "Z7", "Z7K1": "Z13587", "Z13587K1": { "Z1K1": "Z18", "Z18K1": "Z36792K1" } } } ] } ] } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "singular if 1, else plural; English cardinal" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } 3ufr61d2qj2ifhrxx8m68rfuny4zy8v Translations:Wikifunctions:Status updates/2026-06-19/29/de 1198 86363 285697 2026-06-22T17:41:09Z Ameisenigel 44 Created page with "Diese Woche haben wir einige Verbesserungen daran vorgenommen, wie Artikel der Abstrakten Wikipedia und eingebettete Ausgaben von Wikifunctions wikiübergreifend dargestellt werden." 285697 wikitext text/x-wiki Diese Woche haben wir einige Verbesserungen daran vorgenommen, wie Artikel der Abstrakten Wikipedia und eingebettete Ausgaben von Wikifunctions wikiübergreifend dargestellt werden. r46i9xy39kcqcsqr68fchsbnwpdhqim Translations:Wikifunctions:Status updates/2026-06-19/15/de 1198 86364 285699 2026-06-22T17:43:51Z Ameisenigel 44 Created page with "In der Abstrakten Wikipedia erscheinen leere Artikel nun als Rotlinks im lokalen Wikitext sowie in gerenderten Fragmenten, übereinstimmend damit, wie Wikipedia mit noch nicht erstellten Seiten verfährt ($1). Zudem greift das System beim Abrufen von Bezeichnungen für Objekte der Abstrakten Wikipedia auf $3 (sprachunabhängige Bezeichnung) zurück, sofern keine sprachspezifische Bezeichnung vorliegt ($2)." 285699 wikitext text/x-wiki In der Abstrakten Wikipedia erscheinen leere Artikel nun als Rotlinks im lokalen Wikitext sowie in gerenderten Fragmenten, übereinstimmend damit, wie Wikipedia mit noch nicht erstellten Seiten verfährt ($1). Zudem greift das System beim Abrufen von Bezeichnungen für Objekte der Abstrakten Wikipedia auf $3 (sprachunabhängige Bezeichnung) zurück, sofern keine sprachspezifische Bezeichnung vorliegt ($2). fnvn0pk4ewd5gf7lz5mbeb4bv2ts0dk Translations:Wikifunctions:Status updates/2026-06-19/16/de 1198 86365 285701 2026-06-22T17:44:32Z Ameisenigel 44 Created page with "Für eingebettete Wikifunctions haben wir einen Fehler behoben, der dazu führte, dass die Vorschau der HTML-Ausgabe eingebetteter Wikifunctions – außer auf Wikifunctions.org selbst – nicht funktionierte ($1)." 285701 wikitext text/x-wiki Für eingebettete Wikifunctions haben wir einen Fehler behoben, der dazu führte, dass die Vorschau der HTML-Ausgabe eingebetteter Wikifunctions – außer auf Wikifunctions.org selbst – nicht funktionierte ($1). 8g61gmbg6664dxpcxmsnsnkhknw88sf Translations:Wikifunctions:Status updates/2026-06-19/17/de 1198 86366 285703 2026-06-22T17:45:59Z Ameisenigel 44 Created page with "Im Rahmen der allgemeinen Arbeiten zur Sprachunterstützung in MediaWiki haben wir $5 ($6) als neue [[$7|Sprache]] hinzugefügt und $8 an $9 zugewiesen, zusätzlich zu dem bereits vorhandenen Code $10 ($1, $2, $3 und $4)." 285703 wikitext text/x-wiki Im Rahmen der allgemeinen Arbeiten zur Sprachunterstützung in MediaWiki haben wir $5 ($6) als neue [[$7|Sprache]] hinzugefügt und $8 an $9 zugewiesen, zusätzlich zu dem bereits vorhandenen Code $10 ($1, $2, $3 und $4). 32f0gqss0shg69c1zrcmfemgyzafmmy Z36798 0 86367 285707 2026-06-22T17:56:21Z Denny 81 285707 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36798" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z36462", "Z17K2": "Z36798K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "determiner" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z36462", "Z17K2": "Z36798K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "noun" } ] } } ], "Z8K2": "Z36462", "Z8K3": [ "Z20" ], "Z8K4": [ "Z14" ], "Z8K5": "Z36798" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "noun phrase from determiner and noun" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "creates noun phrases such as \"a house\", \"the cat\", \"seven little dwarves\", etc." } ] } } a2l34t88nk85ydtp8bcamch63hcis9r 285710 285707 2026-06-22T18:00:44Z Denny 81 Added Z36799 to the approved list of test cases 285710 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36798" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z36462", "Z17K2": "Z36798K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "determiner" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z36462", "Z17K2": "Z36798K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "noun" } ] } } ], "Z8K2": "Z36462", "Z8K3": [ "Z20", "Z36799" ], "Z8K4": [ "Z14" ], "Z8K5": "Z36798" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "noun phrase from determiner and noun" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "creates noun phrases such as \"a house\", \"the cat\", \"seven little dwarves\", etc." } ] } } 7836xlfo60onldpfappi8xtyx2jpr55 285712 285710 2026-06-22T18:02:19Z Denny 81 Added Z36800 to the approved list of test cases 285712 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36798" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z36462", "Z17K2": "Z36798K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "determiner" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z36462", "Z17K2": "Z36798K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "noun" } ] } } ], "Z8K2": "Z36462", "Z8K3": [ "Z20", "Z36799", "Z36800" ], "Z8K4": [ "Z14" ], "Z8K5": "Z36798" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "noun phrase from determiner and noun" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "creates noun phrases such as \"a house\", \"the cat\", \"seven little dwarves\", etc." } ] } } 32wooblno5a4la7eegsjq93x6y510er 285715 285712 2026-06-22T18:03:40Z Denny 81 Added Z36801 to the approved list of test cases 285715 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36798" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z36462", "Z17K2": "Z36798K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "determiner" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z36462", "Z17K2": "Z36798K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "noun" } ] } } ], "Z8K2": "Z36462", "Z8K3": [ "Z20", "Z36799", "Z36800", "Z36801" ], "Z8K4": [ "Z14" ], "Z8K5": "Z36798" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "noun phrase from determiner and noun" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "creates noun phrases such as \"a house\", \"the cat\", \"seven little dwarves\", etc." } ] } } ii1qiqty68lwm9nbghyk9j7n7d5ibx0 285719 285715 2026-06-22T18:05:08Z Denny 81 Added Z36802 to the approved list of test cases 285719 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36798" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z36462", "Z17K2": "Z36798K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "determiner" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z36462", "Z17K2": "Z36798K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "noun" } ] } } ], "Z8K2": "Z36462", "Z8K3": [ "Z20", "Z36799", "Z36800", "Z36801", "Z36802" ], "Z8K4": [ "Z14" ], "Z8K5": "Z36798" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "noun phrase from determiner and noun" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "creates noun phrases such as \"a house\", \"the cat\", \"seven little dwarves\", etc." } ] } } 3uttlkxxi93tuccjdd57zjy1yhpff3w 285789 285719 2026-06-22T21:31:14Z Denny 81 Added Z36830 to the approved list of test cases 285789 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36798" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z36462", "Z17K2": "Z36798K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "determiner" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z36462", "Z17K2": "Z36798K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "noun" } ] } } ], "Z8K2": "Z36462", "Z8K3": [ "Z20", "Z36799", "Z36800", "Z36801", "Z36802", "Z36830" ], "Z8K4": [ "Z14" ], "Z8K5": "Z36798" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "noun phrase from determiner and noun" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "creates noun phrases such as \"a house\", \"the cat\", \"seven little dwarves\", etc." } ] } } g1vrnp3ct9w0mvepxuhozb8wv1aovym 285897 285789 2026-06-23T08:57:39Z Denny 81 Added Z36861 to the approved list of test cases 285897 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36798" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z36462", "Z17K2": "Z36798K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "determiner" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z36462", "Z17K2": "Z36798K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "noun" } ] } } ], "Z8K2": "Z36462", "Z8K3": [ "Z20", "Z36799", "Z36800", "Z36801", "Z36802", "Z36830", "Z36861" ], "Z8K4": [ "Z14" ], "Z8K5": "Z36798" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "noun phrase from determiner and noun" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "creates noun phrases such as \"a house\", \"the cat\", \"seven little dwarves\", etc." } ] } } f318pilshif20jymfakpdabkoabldkv 285899 285897 2026-06-23T08:59:21Z Denny 81 Added Z36803 to the approved list of implementations 285899 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36798" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z36462", "Z17K2": "Z36798K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "determiner" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z36462", "Z17K2": "Z36798K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "noun" } ] } } ], "Z8K2": "Z36462", "Z8K3": [ "Z20", "Z36799", "Z36800", "Z36801", "Z36802", "Z36830", "Z36861" ], "Z8K4": [ "Z14", "Z36803" ], "Z8K5": "Z36798" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "noun phrase from determiner and noun" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "creates noun phrases such as \"a house\", \"the cat\", \"seven little dwarves\", etc." } ] } } mitlykdibqo54sqf2029qktsd0hzseu Z36799 0 86368 285709 2026-06-22T17:59:17Z Denny 81 285709 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36799" }, "Z2K2": { "Z1K1": "Z20", "Z20K1": "Z36798", "Z20K2": { "Z1K1": "Z7", "Z7K1": "Z36798", "Z36798K1": "Z36781", "Z36798K2": "Z36617" }, "Z20K3": { "Z1K1": "Z7", "Z7K1": "Z36717", "Z36717K2": { "Z1K1": "Z36462", "Z36462K1": "Z1002", "Z36462K2": { "Z1K1": "Z6091", "Z6091K1": "Q1401131" }, "Z36462K3": [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q110786" } ], "Z36462K4": [ "Z36463", { "Z1K1": "Z36463", "Z36463K1": [ "Z6091" ], "Z36463K2": [ "Z89", { "Z1K1": "Z89", "Z89K1": "a goose" } ] } ] } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "a goose" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } o4jqj2ofaaop1g9zazun1ce0jijoogk Z36800 0 86369 285711 2026-06-22T18:02:08Z Denny 81 285711 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36800" }, "Z2K2": { "Z1K1": "Z20", "Z20K1": "Z36798", "Z20K2": { "Z1K1": "Z7", "Z7K1": "Z36798", "Z36798K1": { "Z1K1": "Z7", "Z7K1": "Z36785", "Z36785K1": { "Z1K1": "Z28516", "Z28516K1": { "Z1K1": "Z6091", "Z6091K1": "Q53997851" } }, "Z36785K2": { "Z1K1": "Z26934", "Z26934K1": { "Z1K1": "Z6091", "Z6091K1": "Q110786" } } }, "Z36798K2": { "Z1K1": "Z7", "Z7K1": "Z36607", "Z36607K1": { "Z1K1": "Z7", "Z7K1": "Z6825", "Z6825K1": { "Z1K1": "Z6095", "Z6095K1": "L7" } } } }, "Z20K3": { "Z1K1": "Z7", "Z7K1": "Z36717", "Z36717K2": { "Z1K1": "Z36462", "Z36462K1": "Z1002", "Z36462K2": { "Z1K1": "Z6091", "Z6091K1": "Q1401131" }, "Z36462K3": [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q110786" } ], "Z36462K4": [ "Z36463", { "Z1K1": "Z36463", "Z36463K1": [ "Z6091" ], "Z36463K2": [ "Z89", { "Z1K1": "Z89", "Z89K1": "the cat" } ] } ] } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "the cat" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } p53jseyg6zlfujy1f1dnupjpg9gw7l0 Z36801 0 86370 285714 2026-06-22T18:03:29Z Denny 81 285714 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36801" }, "Z2K2": { "Z1K1": "Z20", "Z20K1": "Z36798", "Z20K2": { "Z1K1": "Z7", "Z7K1": "Z36798", "Z36798K1": { "Z1K1": "Z7", "Z7K1": "Z36792", "Z36792K1": { "Z1K1": "Z13518", "Z13518K1": "7" } }, "Z36798K2": { "Z1K1": "Z7", "Z7K1": "Z36607", "Z36607K1": { "Z1K1": "Z7", "Z7K1": "Z6825", "Z6825K1": { "Z1K1": "Z6095", "Z6095K1": "L2135" } } } }, "Z20K3": { "Z1K1": "Z7", "Z7K1": "Z36717", "Z36717K2": { "Z1K1": "Z36462", "Z36462K1": "Z1002", "Z36462K2": { "Z1K1": "Z6091", "Z6091K1": "Q1401131" }, "Z36462K3": [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q146786" } ], "Z36462K4": [ "Z36463", { "Z1K1": "Z36463", "Z36463K1": [ "Z6091" ], "Z36463K2": [ "Z89", { "Z1K1": "Z89", "Z89K1": "seven goats" } ] } ] } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "seven goats" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } l552av1lq476apdwnz3wtwtzm811ct9 Z36802 0 86371 285718 2026-06-22T18:04:58Z Denny 81 285718 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36802" }, "Z2K2": { "Z1K1": "Z20", "Z20K1": "Z36798", "Z20K2": { "Z1K1": "Z7", "Z7K1": "Z36798", "Z36798K1": { "Z1K1": "Z7", "Z7K1": "Z36792", "Z36792K1": { "Z1K1": "Z13518", "Z13518K1": "0" } }, "Z36798K2": { "Z1K1": "Z7", "Z7K1": "Z36607", "Z36607K1": { "Z1K1": "Z7", "Z7K1": "Z6825", "Z6825K1": { "Z1K1": "Z6095", "Z6095K1": "L3429" } } } }, "Z20K3": { "Z1K1": "Z7", "Z7K1": "Z36717", "Z36717K2": { "Z1K1": "Z36462", "Z36462K1": "Z1002", "Z36462K2": { "Z1K1": "Z6091", "Z6091K1": "Q1401131" }, "Z36462K3": [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q146786" } ], "Z36462K4": [ "Z36463", { "Z1K1": "Z36463", "Z36463K1": [ "Z6091" ], "Z36463K2": [ "Z89", { "Z1K1": "Z89", "Z89K1": "zero ideas" } ] } ] } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "zero ideas" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } ax898p1fw8b51580wu6lhxdf2ujdjre Z36803 0 86372 285729 2026-06-22T18:10:09Z Denny 81 285729 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36803" }, "Z2K2": { "Z1K1": "Z14", "Z14K1": "Z36798", "Z14K2": { "Z1K1": "Z36462", "Z36462K1": "Z1002", "Z36462K2": { "Z1K1": "Z6091", "Z6091K1": "Q1401131" }, "Z36462K3": { "Z1K1": "Z7", "Z7K1": "Z36644", "Z36644K1": { "Z1K1": "Z18", "Z18K1": "Z36798K1" } }, "Z36462K4": [ "Z36463", { "Z1K1": "Z36463", "Z36463K1": [ "Z6091" ], "Z36463K2": [ "Z89", { "Z1K1": "Z89", "Z89K1": "a goose" } ] } ] } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "(wip) det++N{det.number}" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } 62hlcmmgv2aly1mjciobwnc9q506h9h 285756 285729 2026-06-22T20:27:35Z Denny 81 285756 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36803" }, "Z2K2": { "Z1K1": "Z14", "Z14K1": "Z36798", "Z14K2": { "Z1K1": "Z36462", "Z36462K1": "Z1002", "Z36462K2": { "Z1K1": "Z6091", "Z6091K1": "Q1401131" }, "Z36462K3": { "Z1K1": "Z7", "Z7K1": "Z36644", "Z36644K1": { "Z1K1": "Z18", "Z18K1": "Z36798K1" } }, "Z36462K4": [ "Z36463", { "Z1K1": "Z36463", "Z36463K1": [ "Z6091" ], "Z36463K2": [ "Z89", { "Z1K1": "Z7", "Z7K1": "Z36810", "Z36810K1": { "Z1K1": "Z7", "Z7K1": "Z36747", "Z36747K1": { "Z1K1": "Z18", "Z18K1": "Z36798K1" } }, "Z36810K2": { "Z1K1": "Z7", "Z7K1": "Z36747", "Z36747K1": { "Z1K1": "Z18", "Z18K1": "Z36798K2" } } } ] } ] } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "(wip) det++N{det.number}" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } 18ei9rw8cxxjeo0zbf3r4ow7lonionc 285787 285756 2026-06-22T21:27:57Z Denny 81 285787 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36803" }, "Z2K2": { "Z1K1": "Z14", "Z14K1": "Z36798", "Z14K2": { "Z1K1": "Z36462", "Z36462K1": "Z1002", "Z36462K2": { "Z1K1": "Z6091", "Z6091K1": "Q1401131" }, "Z36462K3": { "Z1K1": "Z7", "Z7K1": "Z36644", "Z36644K1": { "Z1K1": "Z18", "Z18K1": "Z36798K1" } }, "Z36462K4": [ "Z36463", { "Z1K1": "Z36463", "Z36463K1": [ "Z6091" ], "Z36463K2": [ "Z89", { "Z1K1": "Z7", "Z7K1": "Z36810", "Z36810K1": { "Z1K1": "Z7", "Z7K1": "Z36747", "Z36747K1": { "Z1K1": "Z18", "Z18K1": "Z36798K1" } }, "Z36810K2": { "Z1K1": "Z7", "Z7K1": "Z811", "Z811K1": { "Z1K1": "Z7", "Z7K1": "Z36827", "Z36827K1": { "Z1K1": "Z18", "Z18K1": "Z36798K2" }, "Z36827K2": { "Z1K1": "Z7", "Z7K1": "Z36644", "Z36644K1": { "Z1K1": "Z18", "Z18K1": "Z36798K1" } } } } } ] } ] } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "(wip) det++N{det.number}" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } 7p2jrt80i90gkfwfw4arpyo5vhen7rg 285790 285787 2026-06-22T21:36:22Z Denny 81 285790 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36803" }, "Z2K2": { "Z1K1": "Z14", "Z14K1": "Z36798", "Z14K2": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z40", "Z40K1": "Z42" }, "Z802K2": { "Z1K1": "Z36462", "Z36462K1": "Z1002", "Z36462K2": { "Z1K1": "Z6091", "Z6091K1": "Q1401131" }, "Z36462K3": [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q110786" } ], "Z36462K4": [ "Z36463", { "Z1K1": "Z36463", "Z36463K1": [ "Z6091" ], "Z36463K2": [ "Z89", { "Z1K1": "Z7", "Z7K1": "Z27849", "Z27849K1": { "Z1K1": "Z89", "Z89K1": "an " }, "Z27849K2": { "Z1K1": "Z7", "Z7K1": "Z811", "Z811K1": { "Z1K1": "Z7", "Z7K1": "Z36827", "Z36827K1": { "Z1K1": "Z18", "Z18K1": "Z36798K2" }, "Z36827K2": [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q110786" } ] } } } ] } ] }, "Z802K3": { "Z1K1": "Z36462", "Z36462K1": "Z1002", "Z36462K2": { "Z1K1": "Z6091", "Z6091K1": "Q1401131" }, "Z36462K3": { "Z1K1": "Z7", "Z7K1": "Z36644", "Z36644K1": { "Z1K1": "Z18", "Z18K1": "Z36798K1" } }, "Z36462K4": [ "Z36463", { "Z1K1": "Z36463", "Z36463K1": [ "Z6091" ], "Z36463K2": [ "Z89", { "Z1K1": "Z7", "Z7K1": "Z36810", "Z36810K1": { "Z1K1": "Z7", "Z7K1": "Z36747", "Z36747K1": { "Z1K1": "Z18", "Z18K1": "Z36798K1" } }, "Z36810K2": { "Z1K1": "Z7", "Z7K1": "Z811", "Z811K1": { "Z1K1": "Z7", "Z7K1": "Z36827", "Z36827K1": { "Z1K1": "Z18", "Z18K1": "Z36798K2" }, "Z36827K2": { "Z1K1": "Z7", "Z7K1": "Z36644", "Z36644K1": { "Z1K1": "Z18", "Z18K1": "Z36798K1" } } } } } ] } ] } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "(wip) det++N{det.number}" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } bjcgj68bk4y5hvhsbbwrkpttj35p9xf 285792 285790 2026-06-22T21:44:09Z Denny 81 285792 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36803" }, "Z2K2": { "Z1K1": "Z14", "Z14K1": "Z36798", "Z14K2": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z10174", "Z10174K1": { "Z1K1": "Z7", "Z7K1": "Z36717", "Z36717K1": { "Z1K1": "Z18", "Z18K1": "Z36798K1" }, "Z36717K2": "Z36781" }, "Z10174K2": { "Z1K1": "Z7", "Z7K1": "Z32314", "Z32314K1": { "Z1K1": "Z7", "Z7K1": "Z27854", "Z27854K1": { "Z1K1": "Z7", "Z7K1": "Z811", "Z811K1": { "Z1K1": "Z7", "Z7K1": "Z36827", "Z36827K1": { "Z1K1": "Z18", "Z18K1": "Z36798K2" }, "Z36827K2": [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q110786" } ] } } } } }, "Z802K2": { "Z1K1": "Z36462", "Z36462K1": "Z1002", "Z36462K2": { "Z1K1": "Z6091", "Z6091K1": "Q1401131" }, "Z36462K3": [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q110786" } ], "Z36462K4": [ "Z36463", { "Z1K1": "Z36463", "Z36463K1": [ "Z6091" ], "Z36463K2": [ "Z89", { "Z1K1": "Z7", "Z7K1": "Z27849", "Z27849K1": { "Z1K1": "Z89", "Z89K1": "an " }, "Z27849K2": { "Z1K1": "Z7", "Z7K1": "Z811", "Z811K1": { "Z1K1": "Z7", "Z7K1": "Z36827", "Z36827K1": { "Z1K1": "Z18", "Z18K1": "Z36798K2" }, "Z36827K2": [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q110786" } ] } } } ] } ] }, "Z802K3": { "Z1K1": "Z36462", "Z36462K1": "Z1002", "Z36462K2": { "Z1K1": "Z6091", "Z6091K1": "Q1401131" }, "Z36462K3": { "Z1K1": "Z7", "Z7K1": "Z36644", "Z36644K1": { "Z1K1": "Z18", "Z18K1": "Z36798K1" } }, "Z36462K4": [ "Z36463", { "Z1K1": "Z36463", "Z36463K1": [ "Z6091" ], "Z36463K2": [ "Z89", { "Z1K1": "Z7", "Z7K1": "Z36810", "Z36810K1": { "Z1K1": "Z7", "Z7K1": "Z36747", "Z36747K1": { "Z1K1": "Z18", "Z18K1": "Z36798K1" } }, "Z36810K2": { "Z1K1": "Z7", "Z7K1": "Z811", "Z811K1": { "Z1K1": "Z7", "Z7K1": "Z36827", "Z36827K1": { "Z1K1": "Z18", "Z18K1": "Z36798K2" }, "Z36827K2": { "Z1K1": "Z7", "Z7K1": "Z36644", "Z36644K1": { "Z1K1": "Z18", "Z18K1": "Z36798K1" } } } } } ] } ] } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "(wip) det++N{det.number}" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } 9nuwi0ynpqwv2flyt1hsrp9rvsipv3j 285898 285792 2026-06-23T08:59:08Z Denny 81 285898 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36803" }, "Z2K2": { "Z1K1": "Z14", "Z14K1": "Z36798", "Z14K2": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z10174", "Z10174K1": { "Z1K1": "Z7", "Z7K1": "Z36717", "Z36717K1": { "Z1K1": "Z18", "Z18K1": "Z36798K1" }, "Z36717K2": "Z36781" }, "Z10174K2": { "Z1K1": "Z7", "Z7K1": "Z32314", "Z32314K1": { "Z1K1": "Z7", "Z7K1": "Z36839", "Z36839K1": { "Z1K1": "Z7", "Z7K1": "Z811", "Z811K1": { "Z1K1": "Z7", "Z7K1": "Z36827", "Z36827K1": { "Z1K1": "Z18", "Z18K1": "Z36798K2" }, "Z36827K2": [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q110786" } ] } } } } }, "Z802K2": { "Z1K1": "Z36462", "Z36462K1": "Z1002", "Z36462K2": { "Z1K1": "Z6091", "Z6091K1": "Q1401131" }, "Z36462K3": [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q110786" } ], "Z36462K4": [ "Z36463", { "Z1K1": "Z36463", "Z36463K1": [ "Z6091" ], "Z36463K2": [ "Z89", { "Z1K1": "Z7", "Z7K1": "Z27849", "Z27849K1": { "Z1K1": "Z89", "Z89K1": "an " }, "Z27849K2": { "Z1K1": "Z7", "Z7K1": "Z811", "Z811K1": { "Z1K1": "Z7", "Z7K1": "Z36827", "Z36827K1": { "Z1K1": "Z18", "Z18K1": "Z36798K2" }, "Z36827K2": [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q110786" } ] } } } ] } ] }, "Z802K3": { "Z1K1": "Z36462", "Z36462K1": "Z1002", "Z36462K2": { "Z1K1": "Z6091", "Z6091K1": "Q1401131" }, "Z36462K3": { "Z1K1": "Z7", "Z7K1": "Z36644", "Z36644K1": { "Z1K1": "Z18", "Z18K1": "Z36798K1" } }, "Z36462K4": [ "Z36463", { "Z1K1": "Z36463", "Z36463K1": [ "Z6091" ], "Z36463K2": [ "Z89", { "Z1K1": "Z7", "Z7K1": "Z36810", "Z36810K1": { "Z1K1": "Z7", "Z7K1": "Z36747", "Z36747K1": { "Z1K1": "Z18", "Z18K1": "Z36798K1" } }, "Z36810K2": { "Z1K1": "Z7", "Z7K1": "Z811", "Z811K1": { "Z1K1": "Z7", "Z7K1": "Z36827", "Z36827K1": { "Z1K1": "Z18", "Z18K1": "Z36798K2" }, "Z36827K2": { "Z1K1": "Z7", "Z7K1": "Z36644", "Z36644K1": { "Z1K1": "Z18", "Z18K1": "Z36798K1" } } } } } ] } ] } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "(wip) det++N{det.number}" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } jpelkkvidrj3p225qzz0almieovrmrb Z36804 0 86373 285730 2026-06-22T18:18:20Z Denny 81 285730 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36804" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z6", "Z17K2": "Z36804K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "first" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z6", "Z17K2": "Z36804K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "second" } ] } } ], "Z8K2": "Z6", "Z8K3": [ "Z20" ], "Z8K4": [ "Z14" ], "Z8K5": "Z36804" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "join two strings with space unless empty" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "If one string is empty, return the other. If both are empty, return empty. Otherwise join the two strings with a space in between." } ] } } c5nfmht038jsj7xg8qpnklh488loxvv 285732 285730 2026-06-22T18:18:52Z Denny 81 Added Z36805 to the approved list of test cases 285732 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36804" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z6", "Z17K2": "Z36804K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "first" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z6", "Z17K2": "Z36804K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "second" } ] } } ], "Z8K2": "Z6", "Z8K3": [ "Z20", "Z36805" ], "Z8K4": [ "Z14" ], "Z8K5": "Z36804" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "join two strings with space unless empty" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "If one string is empty, return the other. If both are empty, return empty. Otherwise join the two strings with a space in between." } ] } } bsjpl92rkcbuf4lwy8six5l2cui0bxg 285735 285732 2026-06-22T18:19:25Z Denny 81 Added Z36806 to the approved list of test cases 285735 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36804" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z6", "Z17K2": "Z36804K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "first" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z6", "Z17K2": "Z36804K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "second" } ] } } ], "Z8K2": "Z6", "Z8K3": [ "Z20", "Z36805", "Z36806" ], "Z8K4": [ "Z14" ], "Z8K5": "Z36804" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "join two strings with space unless empty" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "If one string is empty, return the other. If both are empty, return empty. Otherwise join the two strings with a space in between." } ] } } 1bstggz89jkp8qrirwvs7qq33qcfgdi 285738 285735 2026-06-22T18:20:06Z Denny 81 Added Z36807 to the approved list of test cases 285738 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36804" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z6", "Z17K2": "Z36804K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "first" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z6", "Z17K2": "Z36804K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "second" } ] } } ], "Z8K2": "Z6", "Z8K3": [ "Z20", "Z36805", "Z36806", "Z36807" ], "Z8K4": [ "Z14" ], "Z8K5": "Z36804" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "join two strings with space unless empty" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "If one string is empty, return the other. If both are empty, return empty. Otherwise join the two strings with a space in between." } ] } } 3aiz07gb1ko06ja731oagyn2yzjrmfp 285740 285738 2026-06-22T18:20:28Z Denny 81 Added Z36808 to the approved list of test cases 285740 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36804" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z6", "Z17K2": "Z36804K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "first" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z6", "Z17K2": "Z36804K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "second" } ] } } ], "Z8K2": "Z6", "Z8K3": [ "Z20", "Z36805", "Z36806", "Z36807", "Z36808" ], "Z8K4": [ "Z14" ], "Z8K5": "Z36804" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "join two strings with space unless empty" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "If one string is empty, return the other. If both are empty, return empty. Otherwise join the two strings with a space in between." } ] } } 89hm3cznphhexdm7cruezfewicc7c52 285742 285740 2026-06-22T18:23:40Z Denny 81 Added Z36809 to the approved list of implementations 285742 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36804" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z6", "Z17K2": "Z36804K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "first" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z6", "Z17K2": "Z36804K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "second" } ] } } ], "Z8K2": "Z6", "Z8K3": [ "Z20", "Z36805", "Z36806", "Z36807", "Z36808" ], "Z8K4": [ "Z14", "Z36809" ], "Z8K5": "Z36804" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "join two strings with space unless empty" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "If one string is empty, return the other. If both are empty, return empty. Otherwise join the two strings with a space in between." } ] } } 6kd0apxmv0cmfblnfxq6v3ohbix63x6 Z36805 0 86374 285731 2026-06-22T18:18:44Z Denny 81 285731 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36805" }, "Z2K2": { "Z1K1": "Z20", "Z20K1": "Z36804", "Z20K2": { "Z1K1": "Z7", "Z7K1": "Z36804", "Z36804K1": "ab", "Z36804K2": "cd" }, "Z20K3": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K2": "ab cd" } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "ab cd" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } 1wc1g3uxoe3khy41otbwjz1fk0opfz5 285736 285731 2026-06-22T18:19:36Z Denny 81 285736 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36805" }, "Z2K2": { "Z1K1": "Z20", "Z20K1": "Z36804", "Z20K2": { "Z1K1": "Z7", "Z7K1": "Z36804", "Z36804K1": "ab", "Z36804K2": "cd" }, "Z20K3": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K2": "ab cd" } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "none empty" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } eksd7uoruzs089me338bqzuyf4qglvb Z36806 0 86375 285733 2026-06-22T18:19:07Z Denny 81 285733 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36806" }, "Z2K2": { "Z1K1": "Z20", "Z20K1": "Z36804", "Z20K2": { "Z1K1": "Z7", "Z7K1": "Z36804", "Z36804K1": "ab", "Z36804K2": "" }, "Z20K3": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K2": "ab" } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "ab" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } m6n6uiyi5qqux3dn95kgp8ytqot9hcz 285734 285733 2026-06-22T18:19:17Z Denny 81 285734 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36806" }, "Z2K2": { "Z1K1": "Z20", "Z20K1": "Z36804", "Z20K2": { "Z1K1": "Z7", "Z7K1": "Z36804", "Z36804K1": "ab", "Z36804K2": "" }, "Z20K3": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K2": "ab" } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "second empty" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } 6gd7mhvph3p5ng26m0ddd2daehh3pzv Z36807 0 86376 285737 2026-06-22T18:19:57Z Denny 81 285737 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36807" }, "Z2K2": { "Z1K1": "Z20", "Z20K1": "Z36804", "Z20K2": { "Z1K1": "Z7", "Z7K1": "Z36804", "Z36804K1": "", "Z36804K2": "cd" }, "Z20K3": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K2": "cd" } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "first empty" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } 0ptwu6zuimw9hso2oeuo8a48oxp035c Z36808 0 86377 285739 2026-06-22T18:20:19Z Denny 81 285739 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36808" }, "Z2K2": { "Z1K1": "Z20", "Z20K1": "Z36804", "Z20K2": { "Z1K1": "Z7", "Z7K1": "Z36804", "Z36804K1": "", "Z36804K2": "" }, "Z20K3": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K2": "" } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "both empty" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } 9ea120huyrhqle2yoeqj80jedsd29am Z36809 0 86378 285741 2026-06-22T18:23:27Z Denny 81 285741 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36809" }, "Z2K2": { "Z1K1": "Z14", "Z14K1": "Z36804", "Z14K2": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z10008", "Z10008K1": { "Z1K1": "Z18", "Z18K1": "Z36804K1" } }, "Z802K2": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z10008", "Z10008K1": { "Z1K1": "Z18", "Z18K1": "Z36804K2" } }, "Z802K2": "", "Z802K3": { "Z1K1": "Z18", "Z18K1": "Z36804K2" } }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z10008", "Z10008K1": { "Z1K1": "Z18", "Z18K1": "Z36804K2" } }, "Z802K2": { "Z1K1": "Z18", "Z18K1": "Z36804K1" }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z27182", "Z27182K1": { "Z1K1": "Z18", "Z18K1": "Z36804K1" }, "Z27182K2": { "Z1K1": "Z18", "Z18K1": "Z36804K2" } } } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "two ifs, is empty string, else join with space" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } 8gq37sou4fdgj938e46hbi6ide7jtov Z36810 0 86379 285744 2026-06-22T20:16:00Z Denny 81 285744 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36810" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z89", "Z17K2": "Z36810K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "first" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z89", "Z17K2": "Z36810K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "second" } ] } } ], "Z8K2": "Z89", "Z8K3": [ "Z20" ], "Z8K4": [ "Z14" ], "Z8K5": "Z36810" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "join two HTML fragments with space unless empty" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "If one fragment is empty, return the other. If both are empty, return empty. Otherwise join the two fragments with a space in between." } ] } } j1pal5exog5vkkfb6c5qat7ag93e1cw 285746 285744 2026-06-22T20:16:55Z Denny 81 Added Z36811 to the approved list of test cases 285746 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36810" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z89", "Z17K2": "Z36810K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "first" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z89", "Z17K2": "Z36810K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "second" } ] } } ], "Z8K2": "Z89", "Z8K3": [ "Z20", "Z36811" ], "Z8K4": [ "Z14" ], "Z8K5": "Z36810" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "join two HTML fragments with space unless empty" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "If one fragment is empty, return the other. If both are empty, return empty. Otherwise join the two fragments with a space in between." } ] } } kfdm8uhbn1qntye5jdfdpz8siwrftri 285748 285746 2026-06-22T20:17:33Z Denny 81 Added Z36812 to the approved list of test cases 285748 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36810" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z89", "Z17K2": "Z36810K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "first" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z89", "Z17K2": "Z36810K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "second" } ] } } ], "Z8K2": "Z89", "Z8K3": [ "Z20", "Z36811", "Z36812" ], "Z8K4": [ "Z14" ], "Z8K5": "Z36810" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "join two HTML fragments with space unless empty" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "If one fragment is empty, return the other. If both are empty, return empty. Otherwise join the two fragments with a space in between." } ] } } hn4zxnrl4rg6j4rvpefc3fhfek5zzmd 285750 285748 2026-06-22T20:18:03Z Denny 81 Added Z36813 to the approved list of test cases 285750 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36810" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z89", "Z17K2": "Z36810K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "first" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z89", "Z17K2": "Z36810K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "second" } ] } } ], "Z8K2": "Z89", "Z8K3": [ "Z20", "Z36811", "Z36812", "Z36813" ], "Z8K4": [ "Z14" ], "Z8K5": "Z36810" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "join two HTML fragments with space unless empty" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "If one fragment is empty, return the other. If both are empty, return empty. Otherwise join the two fragments with a space in between." } ] } } 1bngujema5glqn2ic8v5qnzlo4602iw 285752 285750 2026-06-22T20:18:32Z Denny 81 Added Z36814 to the approved list of test cases 285752 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36810" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z89", "Z17K2": "Z36810K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "first" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z89", "Z17K2": "Z36810K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "second" } ] } } ], "Z8K2": "Z89", "Z8K3": [ "Z20", "Z36811", "Z36812", "Z36813", "Z36814" ], "Z8K4": [ "Z14" ], "Z8K5": "Z36810" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "join two HTML fragments with space unless empty" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "If one fragment is empty, return the other. If both are empty, return empty. Otherwise join the two fragments with a space in between." } ] } } pvic92b91fjxqw0fcng7i938pefesfp 285754 285752 2026-06-22T20:23:48Z Denny 81 Added Z36815 to the approved list of implementations 285754 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36810" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z89", "Z17K2": "Z36810K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "first" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z89", "Z17K2": "Z36810K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "second" } ] } } ], "Z8K2": "Z89", "Z8K3": [ "Z20", "Z36811", "Z36812", "Z36813", "Z36814" ], "Z8K4": [ "Z14", "Z36815" ], "Z8K5": "Z36810" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "join two HTML fragments with space unless empty" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "If one fragment is empty, return the other. If both are empty, return empty. Otherwise join the two fragments with a space in between." } ] } } d2kqv16y3g4746np8tyzjpcobd8bpjb Z36811 0 86380 285745 2026-06-22T20:16:46Z Denny 81 285745 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36811" }, "Z2K2": { "Z1K1": "Z20", "Z20K1": "Z36810", "Z20K2": { "Z1K1": "Z7", "Z7K1": "Z36810", "Z36810K1": { "Z1K1": "Z89", "Z89K1": "aa" }, "Z36810K2": { "Z1K1": "Z89", "Z89K1": "aa" } }, "Z20K3": { "Z1K1": "Z7", "Z7K1": "Z877", "Z877K2": { "Z1K1": "Z89", "Z89K1": "aa aa" } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "no fragment empty" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } ip22dix2i5zr5bsaun0cswvqa16bs99 Z36812 0 86381 285747 2026-06-22T20:17:21Z Denny 81 285747 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36812" }, "Z2K2": { "Z1K1": "Z20", "Z20K1": "Z36810", "Z20K2": { "Z1K1": "Z7", "Z7K1": "Z36810", "Z36810K1": { "Z1K1": "Z89", "Z89K1": "" }, "Z36810K2": { "Z1K1": "Z89", "Z89K1": "aa" } }, "Z20K3": { "Z1K1": "Z7", "Z7K1": "Z877", "Z877K2": { "Z1K1": "Z89", "Z89K1": "aa" } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "first fragment empty" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } i70vys1wwmcsvscn70pp8xxojamt6xf Z36813 0 86382 285749 2026-06-22T20:17:51Z Denny 81 285749 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36813" }, "Z2K2": { "Z1K1": "Z20", "Z20K1": "Z36810", "Z20K2": { "Z1K1": "Z7", "Z7K1": "Z36810", "Z36810K1": { "Z1K1": "Z89", "Z89K1": "aa" }, "Z36810K2": { "Z1K1": "Z89", "Z89K1": "" } }, "Z20K3": { "Z1K1": "Z7", "Z7K1": "Z877", "Z877K2": { "Z1K1": "Z89", "Z89K1": "aa" } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "second fragment empty" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } 2g88pihedipiudesdnnr716i2o7ygjd Z36814 0 86383 285751 2026-06-22T20:18:21Z Denny 81 285751 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36814" }, "Z2K2": { "Z1K1": "Z20", "Z20K1": "Z36810", "Z20K2": { "Z1K1": "Z7", "Z7K1": "Z36810", "Z36810K1": { "Z1K1": "Z89", "Z89K1": "" }, "Z36810K2": { "Z1K1": "Z89", "Z89K1": "" } }, "Z20K3": { "Z1K1": "Z7", "Z7K1": "Z877", "Z877K2": { "Z1K1": "Z89", "Z89K1": "" } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "both fragments empty" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } ijr1b37z7dvziz5dk5bhd9tgjdzh790 Z36815 0 86384 285753 2026-06-22T20:23:31Z Denny 81 285753 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36815" }, "Z2K2": { "Z1K1": "Z14", "Z14K1": "Z36810", "Z14K2": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z35737", "Z35737K1": { "Z1K1": "Z18", "Z18K1": "Z36810K1" } }, "Z802K2": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z35737", "Z35737K1": { "Z1K1": "Z18", "Z18K1": "Z36810K2" } }, "Z802K2": { "Z1K1": "Z89", "Z89K1": "" }, "Z802K3": { "Z1K1": "Z18", "Z18K1": "Z36810K2" } }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z35737", "Z35737K1": { "Z1K1": "Z18", "Z18K1": "Z36810K2" } }, "Z802K2": { "Z1K1": "Z18", "Z18K1": "Z36810K1" }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z27926", "Z27926K1": [ "Z89", { "Z1K1": "Z18", "Z18K1": "Z36810K1" }, { "Z1K1": "Z89", "Z89K1": " " }, { "Z1K1": "Z18", "Z18K1": "Z36810K2" } ] } } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "is empty, else join multiple HTML fragments" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } 91edozgu1kdfgmgces48kizuhgzw0yh Z36816 0 86385 285757 2026-06-22T20:36:51Z Denny 81 285757 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36816" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z36463", "Z17K2": "Z36816K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "option" } ] } } ], "Z8K2": "Z89", "Z8K3": [ "Z20" ], "Z8K4": [ "Z14" ], "Z8K5": "Z36816" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "first fragment of Option" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "returns the first fragment of the given Syntactic option" } ] } } ndhtdvmzitqpq3mucb0nxaxlin92u0t 285760 285757 2026-06-22T20:39:00Z Denny 81 Added Z36817 and Z36818 to the approved list of test cases 285760 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36816" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z36463", "Z17K2": "Z36816K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "option" } ] } } ], "Z8K2": "Z89", "Z8K3": [ "Z20", "Z36817", "Z36818" ], "Z8K4": [ "Z14" ], "Z8K5": "Z36816" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "first fragment of Option" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "returns the first fragment of the given Syntactic option" } ] } } th1zlufxugtqvqdte6asvhjgye34c8k 285763 285760 2026-06-22T20:40:01Z Denny 81 Added Z36819 to the approved list of implementations 285763 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36816" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z36463", "Z17K2": "Z36816K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "option" } ] } } ], "Z8K2": "Z89", "Z8K3": [ "Z20", "Z36817", "Z36818" ], "Z8K4": [ "Z14", "Z36819" ], "Z8K5": "Z36816" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "first fragment of Option" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "returns the first fragment of the given Syntactic option" } ] } } 4le8ee7laxpoftxotozwmznkcfitjto Z36817 0 86386 285758 2026-06-22T20:37:44Z Denny 81 285758 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36817" }, "Z2K2": { "Z1K1": "Z20", "Z20K1": "Z36816", "Z20K2": { "Z1K1": "Z7", "Z7K1": "Z36816", "Z36816K1": { "Z1K1": "Z36463", "Z36463K1": [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q110786" }, { "Z1K1": "Z6091", "Z6091K1": "Q131105" } ], "Z36463K2": [ "Z89", { "Z1K1": "Z89", "Z89K1": "Haus" } ] } }, "Z20K3": { "Z1K1": "Z7", "Z7K1": "Z877", "Z877K2": { "Z1K1": "Z89", "Z89K1": "Haus" } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Haus (de, sg, nom) is \"Haus\"" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } 8v114lsbfrprmvrxr6jg3taaclacgpa Z36818 0 86387 285759 2026-06-22T20:38:50Z Denny 81 285759 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36818" }, "Z2K2": { "Z1K1": "Z20", "Z20K1": "Z36816", "Z20K2": { "Z1K1": "Z7", "Z7K1": "Z36816", "Z36816K1": { "Z1K1": "Z36463", "Z36463K1": [ "Z6091" ], "Z36463K2": [ "Z89", { "Z1K1": "Z89", "Z89K1": "zeichne" }, { "Z1K1": "Z89", "Z89K1": "auf" } ] } }, "Z20K3": { "Z1K1": "Z7", "Z7K1": "Z877", "Z877K2": { "Z1K1": "Z89", "Z89K1": "zeichne" } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "two fragments" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } 1k8kf6xuvzx7fknambbir67iv1e9fhv Z36819 0 86388 285761 2026-06-22T20:39:32Z Denny 81 285761 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36819" }, "Z2K2": { "Z1K1": "Z14", "Z14K1": "Z36816", "Z14K2": { "Z1K1": "Z7", "Z7K1": "Z811", "Z811K1": { "Z1K1": "Z7", "Z7K1": "Z36666", "Z36666K1": { "Z1K1": "Z18", "Z18K1": "Z36816K1" } } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "first element of fragments of option" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } 3dtzj505nxyf5vlwxdgzq6vvc6l2s6e Z36820 0 86389 285764 2026-06-22T20:46:38Z Denny 81 285764 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36820" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z36462", "Z17K2": "Z36820K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "table" } ] } }, { "Z1K1": "Z17", "Z17K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z6091" }, "Z17K2": "Z36820K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "features" } ] } } ], "Z8K2": "Z36463", "Z8K3": [ "Z20" ], "Z8K4": [ "Z14" ], "Z8K5": "Z36820" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "option by features" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "returns the single Syntactic option from the Syntactic table that has all the given features" } ] } } qlbfy7lzub2x3tdn5gp7trfqjrcttrn 285766 285764 2026-06-22T21:02:22Z Denny 81 Added Z36821 to the approved list of test cases 285766 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36820" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z36462", "Z17K2": "Z36820K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "table" } ] } }, { "Z1K1": "Z17", "Z17K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z6091" }, "Z17K2": "Z36820K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "features" } ] } } ], "Z8K2": "Z36463", "Z8K3": [ "Z20", "Z36821" ], "Z8K4": [ "Z14" ], "Z8K5": "Z36820" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "option by features" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "returns the single Syntactic option from the Syntactic table that has all the given features" } ] } } 1cgl1enscuzx6uz5hmk5garwku7ilbq 285768 285766 2026-06-22T21:03:51Z Denny 81 Added Z36822 to the approved list of test cases 285768 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36820" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z36462", "Z17K2": "Z36820K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "table" } ] } }, { "Z1K1": "Z17", "Z17K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z6091" }, "Z17K2": "Z36820K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "features" } ] } } ], "Z8K2": "Z36463", "Z8K3": [ "Z20", "Z36821", "Z36822" ], "Z8K4": [ "Z14" ], "Z8K5": "Z36820" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "option by features" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "returns the single Syntactic option from the Syntactic table that has all the given features" } ] } } axq5xhvb06xymp2p1ksuv6iawhnzf9s 285777 285768 2026-06-22T21:14:56Z Denny 81 Added Z36826 to the approved list of implementations 285777 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36820" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z36462", "Z17K2": "Z36820K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "table" } ] } }, { "Z1K1": "Z17", "Z17K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z6091" }, "Z17K2": "Z36820K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "features" } ] } } ], "Z8K2": "Z36463", "Z8K3": [ "Z20", "Z36821", "Z36822" ], "Z8K4": [ "Z14", "Z36826" ], "Z8K5": "Z36820" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "option by features" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "returns the single Syntactic option from the Syntactic table that has all the given features" } ] } } inf2m63mpaig1i75h8f5q5ikdek1e62 Z36821 0 86390 285765 2026-06-22T21:02:06Z Denny 81 285765 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36821" }, "Z2K2": { "Z1K1": "Z20", "Z20K1": "Z36820", "Z20K2": { "Z1K1": "Z7", "Z7K1": "Z36820", "Z36820K1": "Z36617", "Z36820K2": [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q146786" } ] }, "Z20K3": { "Z1K1": "Z7", "Z7K1": "Z36670", "Z36670K2": { "Z1K1": "Z36463", "Z36463K1": [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q146786" } ], "Z36463K2": [ "Z89", { "Z1K1": "Z89", "Z89K1": "geese" } ] } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "plural from goose is geese" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } okv6cm9liox2308o4ue5b18swoz1ks2 Z36822 0 86391 285767 2026-06-22T21:03:32Z Denny 81 285767 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36822" }, "Z2K2": { "Z1K1": "Z20", "Z20K1": "Z36820", "Z20K2": { "Z1K1": "Z7", "Z7K1": "Z36820", "Z36820K1": "Z36645", "Z36820K2": [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q146078" }, { "Z1K1": "Z6091", "Z6091K1": "Q146786" } ] }, "Z20K3": { "Z1K1": "Z7", "Z7K1": "Z36670", "Z36670K2": { "Z1K1": "Z36463", "Z36463K1": [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q146078" }, { "Z1K1": "Z6091", "Z6091K1": "Q146786" } ], "Z36463K2": [ "Z89", { "Z1K1": "Z89", "Z89K1": "Gänse" } ] } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "accusative plural of Gans (de) is Gänse" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } g0l33fjp7sxwzi8f4ol99qxatgqovdi Z36823 0 86392 285769 2026-06-22T21:06:15Z Denny 81 285769 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36823" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z36463" }, "Z17K2": "Z36823K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "list of options" } ] } }, { "Z1K1": "Z17", "Z17K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z6091" }, "Z17K2": "Z36823K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "features" } ] } } ], "Z8K2": "Z36463", "Z8K3": [ "Z20" ], "Z8K4": [ "Z14" ], "Z8K5": "Z36823" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "option by features from list of options" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "returns the Syntactic option from a list of options that has exactly the list of features" } ] } } 2i83oxhrg6uifr7hffaefrilx0ds3we 285771 285769 2026-06-22T21:07:45Z Denny 81 Added Z36824 to the approved list of test cases 285771 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36823" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z36463" }, "Z17K2": "Z36823K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "list of options" } ] } }, { "Z1K1": "Z17", "Z17K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z6091" }, "Z17K2": "Z36823K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "features" } ] } } ], "Z8K2": "Z36463", "Z8K3": [ "Z20", "Z36824" ], "Z8K4": [ "Z14" ], "Z8K5": "Z36823" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "option by features from list of options" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "returns the Syntactic option from a list of options that has exactly the list of features" } ] } } hs8das9hzr7s7hcw5ku10jbnvj0ank6 285774 285771 2026-06-22T21:12:32Z Denny 81 Added Z36825 to the approved list of implementations 285774 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36823" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z36463" }, "Z17K2": "Z36823K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "list of options" } ] } }, { "Z1K1": "Z17", "Z17K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z6091" }, "Z17K2": "Z36823K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "features" } ] } } ], "Z8K2": "Z36463", "Z8K3": [ "Z20", "Z36824" ], "Z8K4": [ "Z14", "Z36825" ], "Z8K5": "Z36823" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "option by features from list of options" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "returns the Syntactic option from a list of options that has exactly the list of features" } ] } } cqtxwqrhj565lbrt1jlhkkc73r173o2 Z36824 0 86393 285770 2026-06-22T21:07:36Z Denny 81 285770 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36824" }, "Z2K2": { "Z1K1": "Z20", "Z20K1": "Z36823", "Z20K2": { "Z1K1": "Z7", "Z7K1": "Z36823", "Z36823K1": [ "Z36463", { "Z1K1": "Z36463", "Z36463K1": [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q110786" } ], "Z36463K2": [ "Z89", { "Z1K1": "Z89", "Z89K1": "word" } ] }, { "Z1K1": "Z36463", "Z36463K1": [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q146786" } ], "Z36463K2": [ "Z89", { "Z1K1": "Z89", "Z89K1": "words" } ] } ], "Z36823K2": [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q146786" } ] }, "Z20K3": { "Z1K1": "Z7", "Z7K1": "Z36670", "Z36670K2": { "Z1K1": "Z36463", "Z36463K1": [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q146786" } ], "Z36463K2": [ "Z89", { "Z1K1": "Z89", "Z89K1": "words" } ] } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "find words (plural)" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } tinmbh02s40rwznpn33fd7lfwc74i5v Z36825 0 86394 285772 2026-06-22T21:12:12Z Denny 81 285772 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36825" }, "Z2K2": { "Z1K1": "Z14", "Z14K1": "Z36823", "Z14K2": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z34270", "Z34270K1": { "Z1K1": "Z7", "Z7K1": "Z36662", "Z36662K1": { "Z1K1": "Z7", "Z7K1": "Z811", "Z811K1": { "Z1K1": "Z18", "Z18K1": "Z36823K1" } } }, "Z34270K2": { "Z1K1": "Z18", "Z18K1": "Z36823K2" } }, "Z802K2": { "Z1K1": "Z7", "Z7K1": "Z811", "Z811K1": { "Z1K1": "Z18", "Z18K1": "Z36823K1" } }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z36823", "Z36823K1": { "Z1K1": "Z7", "Z7K1": "Z812", "Z812K1": { "Z1K1": "Z18", "Z18K1": "Z36823K1" } }, "Z36823K2": { "Z1K1": "Z18", "Z18K1": "Z36823K2" } } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "If f=features(option), first, else recurse rest" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } r4qe0w3ii646x76xsx1dappsmqwb24a Z36826 0 86395 285776 2026-06-22T21:14:29Z Denny 81 285776 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36826" }, "Z2K2": { "Z1K1": "Z14", "Z14K1": "Z36820", "Z14K2": { "Z1K1": "Z7", "Z7K1": "Z36823", "Z36823K1": { "Z1K1": "Z7", "Z7K1": "Z36650", "Z36650K1": { "Z1K1": "Z18", "Z18K1": "Z36820K1" } }, "Z36823K2": { "Z1K1": "Z18", "Z18K1": "Z36820K2" } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "options by features from list of options(table, f)" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } sc7l79trggm0ij5lllziviy76ila9hc Z36827 0 86396 285779 2026-06-22T21:22:08Z Denny 81 285779 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36827" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z36462", "Z17K2": "Z36827K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "table" } ] } }, { "Z1K1": "Z17", "Z17K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z6091" }, "Z17K2": "Z36827K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "features" } ] } } ], "Z8K2": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z89" }, "Z8K3": [ "Z20" ], "Z8K4": [ "Z14" ], "Z8K5": "Z36827" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "fragments from Table by beatures" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "given a Syntactic table, return the fragments of the Syntactic options with exactly the given features" } ] } } jhp809m1554xtro4528otyhxgcjkc1w 285780 285779 2026-06-22T21:22:26Z Denny 81 285780 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36827" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z36462", "Z17K2": "Z36827K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "table" } ] } }, { "Z1K1": "Z17", "Z17K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z6091" }, "Z17K2": "Z36827K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "features" } ] } } ], "Z8K2": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z89" }, "Z8K3": [ "Z20" ], "Z8K4": [ "Z14" ], "Z8K5": "Z36827" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "fragments from Table by features" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "given a Syntactic table, return the fragments of the Syntactic options with exactly the given features" } ] } } qj21dzpdg9n2x2u0qgxkalaxh7qfem1 285782 285780 2026-06-22T21:24:07Z Denny 81 Added Z36828 to the approved list of test cases 285782 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36827" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z36462", "Z17K2": "Z36827K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "table" } ] } }, { "Z1K1": "Z17", "Z17K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z6091" }, "Z17K2": "Z36827K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "features" } ] } } ], "Z8K2": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z89" }, "Z8K3": [ "Z20", "Z36828" ], "Z8K4": [ "Z14" ], "Z8K5": "Z36827" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "fragments from Table by features" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "given a Syntactic table, return the fragments of the Syntactic options with exactly the given features" } ] } } l4glb7n0j34vkmwftmh026jys8ysksk 285784 285782 2026-06-22T21:25:35Z Denny 81 Added Z36829 to the approved list of implementations 285784 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36827" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z36462", "Z17K2": "Z36827K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "table" } ] } }, { "Z1K1": "Z17", "Z17K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z6091" }, "Z17K2": "Z36827K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "features" } ] } } ], "Z8K2": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z89" }, "Z8K3": [ "Z20", "Z36828" ], "Z8K4": [ "Z14", "Z36829" ], "Z8K5": "Z36827" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "fragments from Table by features" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "given a Syntactic table, return the fragments of the Syntactic options with exactly the given features" } ] } } do45m6cjplsd30jlcd927as1p0t1oe9 Z36828 0 86397 285781 2026-06-22T21:23:54Z Denny 81 285781 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36828" }, "Z2K2": { "Z1K1": "Z20", "Z20K1": "Z36827", "Z20K2": { "Z1K1": "Z7", "Z7K1": "Z36827", "Z36827K1": "Z36617", "Z36827K2": [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q146786" } ] }, "Z20K3": { "Z1K1": "Z7", "Z7K1": "Z889", "Z889K2": [ "Z1", { "Z1K1": "Z89", "Z89K1": "geese" } ], "Z889K3": "Z877" } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "from table goose plural we get \"geese\"" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } 8ipediqh4c1z2scqysubgk24m9w2dpe Z36829 0 86398 285783 2026-06-22T21:25:07Z Denny 81 285783 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36829" }, "Z2K2": { "Z1K1": "Z14", "Z14K1": "Z36827", "Z14K2": { "Z1K1": "Z7", "Z7K1": "Z36666", "Z36666K1": { "Z1K1": "Z7", "Z7K1": "Z36820", "Z36820K1": { "Z1K1": "Z18", "Z18K1": "Z36827K1" }, "Z36820K2": { "Z1K1": "Z18", "Z18K1": "Z36827K2" } } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "fragments of option by features" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } le20zozubrowsy7eicerkt7wqr72m7j Z36830 0 86399 285788 2026-06-22T21:30:50Z Denny 81 285788 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36830" }, "Z2K2": { "Z1K1": "Z20", "Z20K1": "Z36798", "Z20K2": { "Z1K1": "Z7", "Z7K1": "Z36798", "Z36798K1": "Z36781", "Z36798K2": { "Z1K1": "Z7", "Z7K1": "Z36607", "Z36607K1": { "Z1K1": "Z7", "Z7K1": "Z6825", "Z6825K1": { "Z1K1": "Z6095", "Z6095K1": "L4713" } } } }, "Z20K3": { "Z1K1": "Z7", "Z7K1": "Z36717", "Z36717K2": { "Z1K1": "Z36462", "Z36462K1": "Z1002", "Z36462K2": { "Z1K1": "Z6091", "Z6091K1": "Q1401131" }, "Z36462K3": [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q110786" } ], "Z36462K4": [ "Z36463", { "Z1K1": "Z36463", "Z36463K1": [ "Z6091" ], "Z36463K2": [ "Z89", { "Z1K1": "Z89", "Z89K1": "an ant" } ] } ] } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "an ant" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } 4y8fq5fblkta0ekzhruugzipbf2fl38 Z36831 0 86400 285795 2026-06-23T00:03:46Z 99of9 1622 285795 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36831" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z89", "Z17K2": "Z36831K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "initial fragment" } ] } }, { "Z1K1": "Z17", "Z17K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z6091" }, "Z17K2": "Z36831K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "list of QIDs to remove links to" } ] } } ], "Z8K2": "Z89", "Z8K3": [ "Z20" ], "Z8K4": [ "Z14" ], "Z8K5": "Z36831" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "remove links to these QIDs" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } cxr639in9okq0oxb2uou98zqyja868q 285797 285795 2026-06-23T00:06:34Z 99of9 1622 Added Z36832 to the approved list of test cases 285797 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36831" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z89", "Z17K2": "Z36831K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "initial fragment" } ] } }, { "Z1K1": "Z17", "Z17K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z6091" }, "Z17K2": "Z36831K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "list of QIDs to remove links to" } ] } } ], "Z8K2": "Z89", "Z8K3": [ "Z20", "Z36832" ], "Z8K4": [ "Z14" ], "Z8K5": "Z36831" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "remove links to these QIDs" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } n9crkoii6ciux12b08ev82xwds76ott 285799 285797 2026-06-23T00:08:03Z 99of9 1622 Added Z36833 to the approved list of test cases 285799 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36831" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z89", "Z17K2": "Z36831K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "initial fragment" } ] } }, { "Z1K1": "Z17", "Z17K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z6091" }, "Z17K2": "Z36831K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "list of QIDs to remove links to" } ] } } ], "Z8K2": "Z89", "Z8K3": [ "Z20", "Z36832", "Z36833" ], "Z8K4": [ "Z14" ], "Z8K5": "Z36831" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "remove links to these QIDs" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } f8xesd6nzbp60g3a0bf2v3cnkunyc66 285800 285799 2026-06-23T00:09:25Z 99of9 1622 285800 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36831" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z89", "Z17K2": "Z36831K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "initial fragment" } ] } }, { "Z1K1": "Z17", "Z17K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z6091" }, "Z17K2": "Z36831K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "list of QIDs to remove links to" } ] } } ], "Z8K2": "Z89", "Z8K3": [ "Z20", "Z36832", "Z36833" ], "Z8K4": [ "Z14" ], "Z8K5": "Z36831" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "remove in-text links to these QIDs" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } troo3pw2t56arzianqwa7c7w7yb8c6b 285801 285800 2026-06-23T00:11:52Z 99of9 1622 285801 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36831" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z89", "Z17K2": "Z36831K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "initial fragment" } ] } }, { "Z1K1": "Z17", "Z17K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z6091" }, "Z17K2": "Z36831K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "list of QIDs to remove links to" } ] } } ], "Z8K2": "Z89", "Z8K3": [ "Z20", "Z36832", "Z36833" ], "Z8K4": [ "Z14" ], "Z8K5": "Z36831" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "remove Abstract Wikipedia links to these QIDs" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } hmecd0emsaiamrh4iu7473q9wd1jwsp 285803 285801 2026-06-23T00:13:33Z 99of9 1622 Added Z36834 to the approved list of test cases 285803 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36831" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z89", "Z17K2": "Z36831K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "initial fragment" } ] } }, { "Z1K1": "Z17", "Z17K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z6091" }, "Z17K2": "Z36831K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "list of QIDs to remove links to" } ] } } ], "Z8K2": "Z89", "Z8K3": [ "Z20", "Z36832", "Z36833", "Z36834" ], "Z8K4": [ "Z14" ], "Z8K5": "Z36831" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "remove Abstract Wikipedia links to these QIDs" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } 1lrerhxn3f581t0earmjuajyi936uxe 285809 285803 2026-06-23T00:19:12Z 99of9 1622 Added Z36837 to the approved list of implementations 285809 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36831" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z89", "Z17K2": "Z36831K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "initial fragment" } ] } }, { "Z1K1": "Z17", "Z17K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z6091" }, "Z17K2": "Z36831K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "list of QIDs to remove links to" } ] } } ], "Z8K2": "Z89", "Z8K3": [ "Z20", "Z36832", "Z36833", "Z36834" ], "Z8K4": [ "Z14", "Z36837" ], "Z8K5": "Z36831" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "remove Abstract Wikipedia links to these QIDs" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } iigpe1cfw1r75msnmq0yfjj9ynmlmv4 285857 285809 2026-06-23T05:58:01Z 99of9 1622 285857 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36831" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z89", "Z17K2": "Z36831K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "initial fragment" } ] } }, { "Z1K1": "Z17", "Z17K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z6091" }, "Z17K2": "Z36831K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "list of QIDs to remove links to" } ] } } ], "Z8K2": "Z89", "Z8K3": [ "Z20", "Z36832", "Z36833", "Z36834" ], "Z8K4": [ "Z14", "Z36837" ], "Z8K5": "Z36831" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "remove all Abstract Wikipedia links to these QIDs" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31", { "Z1K1": "Z31", "Z31K1": "Z1002", "Z31K2": [ "Z6", "remove Abstract Wikipedia links to these QIDs" ] } ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } kax8hljm7rey44e7p47q6qqmuj6m329 Z36832 0 86401 285796 2026-06-23T00:06:21Z 99of9 1622 285796 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36832" }, "Z2K2": { "Z1K1": "Z20", "Z20K1": "Z36831", "Z20K2": { "Z1K1": "Z7", "Z7K1": "Z36831", "Z36831K1": { "Z1K1": "Z89", "Z89K1": "\u003Cdiv role=\"note\" class=\"hatnote navigation-not-searchable\"\u003E\u003Ci\u003EMain articles: \u003C/i\u003E\u003Ca href=\"https://abstract.wikipedia.org/wiki/Q174825\"\u003EHistory of Australia\u003C/a\u003E and \u003Ca href=\"https://abstract.wikipedia.org/wiki/Q4501797\"\u003ETimeline of Australian history\u003C/a\u003E\u003C/div\u003E" }, "Z36831K2": [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q4501797" } ] }, "Z20K3": { "Z1K1": "Z7", "Z7K1": "Z877", "Z877K2": { "Z1K1": "Z89", "Z89K1": "\u003Cdiv role=\"note\" class=\"hatnote navigation-not-searchable\"\u003E\u003Ci\u003EMain articles: \u003C/i\u003E\u003Ca href=\"https://abstract.wikipedia.org/wiki/Q174825\"\u003EHistory of Australia\u003C/a\u003E and Timeline of Australian history\u003C/div\u003E" } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "remove specific link from pair of \"Main articles\"" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } rd8lwzcixs0rk4jdtwp1ky3286ojh9t Z36833 0 86402 285798 2026-06-23T00:07:49Z 99of9 1622 285798 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36833" }, "Z2K2": { "Z1K1": "Z20", "Z20K1": "Z36831", "Z20K2": { "Z1K1": "Z7", "Z7K1": "Z36831", "Z36831K1": { "Z1K1": "Z89", "Z89K1": "\u003Cdiv role=\"note\" class=\"hatnote navigation-not-searchable\"\u003E\u003Ci\u003EMain articles: \u003C/i\u003E\u003Ca href=\"https://abstract.wikipedia.org/wiki/Q174825\"\u003EHistory of Australia\u003C/a\u003E and \u003Ca href=\"https://abstract.wikipedia.org/wiki/Q4501797\"\u003ETimeline of Australian history\u003C/a\u003E\u003C/div\u003E" }, "Z36831K2": [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q4501797" }, { "Z1K1": "Z6091", "Z6091K1": "Q174825" } ] }, "Z20K3": { "Z1K1": "Z7", "Z7K1": "Z877", "Z877K2": { "Z1K1": "Z89", "Z89K1": "\u003Cdiv role=\"note\" class=\"hatnote navigation-not-searchable\"\u003E\u003Ci\u003EMain articles: \u003C/i\u003EHistory of Australia and Timeline of Australian history\u003C/div\u003E" } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "remove both links from fragment with 2" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } ogwone2ve4uj1zo7nkeanx5z05h7r5j Z36834 0 86403 285802 2026-06-23T00:13:02Z 99of9 1622 285802 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36834" }, "Z2K2": { "Z1K1": "Z20", "Z20K1": "Z36831", "Z20K2": { "Z1K1": "Z7", "Z7K1": "Z36831", "Z36831K1": { "Z1K1": "Z89", "Z89K1": "The legislature of \u003Ca href=\"https://abstract.wikipedia.org/wiki/Q408\"\u003EAustralia\u003C/a\u003E is the \u003Ca href=\"https://abstract.wikipedia.org/wiki/Q382118\"\u003EParliament of Australia\u003C/a\u003E.\u003Csup class=\"ext-wikilambda-reference\"\u003E\u003Ca href=\"https://www.wikidata.org/wiki/Q408#P194\"\u003EWikidata: Australia (Q408#P194)\u003C/a\u003E\u003C/sup\u003E" }, "Z36831K2": [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q408" } ] }, "Z20K3": { "Z1K1": "Z7", "Z7K1": "Z877", "Z877K2": { "Z1K1": "Z89", "Z89K1": "The legislature of Australia is the \u003Ca href=\"https://abstract.wikipedia.org/wiki/Q382118\"\u003EParliament of Australia\u003C/a\u003E.\u003Csup class=\"ext-wikilambda-reference\"\u003E\u003Ca href=\"https://www.wikidata.org/wiki/Q408#P194\"\u003EWikidata: Australia (Q408#P194)\u003C/a\u003E\u003C/sup\u003E" } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "remove AW link but not WD link" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } 870oqmk5zhn2dtr48poo6rcxs182c7e Z36835 0 86404 285804 2026-06-23T00:15:10Z 99of9 1622 285804 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36835" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z89", "Z17K2": "Z36835K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "initial fragment" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z6091", "Z17K2": "Z36835K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "QID to remove links to" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z40", "Z17K2": "Z36835K3", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "remove all?" } ] } } ], "Z8K2": "Z89", "Z8K3": [ "Z20" ], "Z8K4": [ "Z14" ], "Z8K5": "Z36835" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "remove Abstract Wikipedia link(s) to this QID" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } c1hbt6tl0xzmdeakcx70mnpoodmyac2 285805 285804 2026-06-23T00:15:30Z 99of9 1622 285805 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36835" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z89", "Z17K2": "Z36835K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "initial fragment" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z6091", "Z17K2": "Z36835K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "QID to remove links to" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z40", "Z17K2": "Z36835K3", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "remove all? (otherwise removes last)" } ] } } ], "Z8K2": "Z89", "Z8K3": [ "Z20" ], "Z8K4": [ "Z14" ], "Z8K5": "Z36835" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "remove Abstract Wikipedia link(s) to this QID" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } irt1247y7osfnzzfprzkp0pr4eb8qrq 285807 285805 2026-06-23T00:16:57Z 99of9 1622 Added Z36836 to the approved list of test cases 285807 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36835" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z89", "Z17K2": "Z36835K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "initial fragment" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z6091", "Z17K2": "Z36835K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "QID to remove links to" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z40", "Z17K2": "Z36835K3", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "remove all? (otherwise removes last)" } ] } } ], "Z8K2": "Z89", "Z8K3": [ "Z20", "Z36836" ], "Z8K4": [ "Z14" ], "Z8K5": "Z36835" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "remove Abstract Wikipedia link(s) to this QID" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } rs09437fsps04oimh1squl0k05lqk4v 285823 285807 2026-06-23T02:50:05Z 99of9 1622 Added Z36843 to the approved list of implementations 285823 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36835" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z89", "Z17K2": "Z36835K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "initial fragment" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z6091", "Z17K2": "Z36835K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "QID to remove links to" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z40", "Z17K2": "Z36835K3", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "remove all? (otherwise removes last)" } ] } } ], "Z8K2": "Z89", "Z8K3": [ "Z20", "Z36836" ], "Z8K4": [ "Z14", "Z36843" ], "Z8K5": "Z36835" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "remove Abstract Wikipedia link(s) to this QID" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } 05zdcmnyd6nvary02e241t5s2iu4uxz 285826 285823 2026-06-23T03:16:45Z 99of9 1622 Added Z36845 to the approved list of test cases 285826 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36835" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z89", "Z17K2": "Z36835K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "initial fragment" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z6091", "Z17K2": "Z36835K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "QID to remove links to" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z40", "Z17K2": "Z36835K3", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "remove all? (otherwise removes last)" } ] } } ], "Z8K2": "Z89", "Z8K3": [ "Z20", "Z36836", "Z36845" ], "Z8K4": [ "Z14", "Z36843" ], "Z8K5": "Z36835" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "remove Abstract Wikipedia link(s) to this QID" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } gs221w0xgdjykfipk23m08ctmmf0hhm 285828 285826 2026-06-23T03:17:58Z 99of9 1622 Added Z36844 and Z36846 to the approved list of test cases 285828 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36835" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z89", "Z17K2": "Z36835K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "initial fragment" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z6091", "Z17K2": "Z36835K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "QID to remove links to" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z40", "Z17K2": "Z36835K3", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "remove all? (otherwise removes last)" } ] } } ], "Z8K2": "Z89", "Z8K3": [ "Z20", "Z36836", "Z36845", "Z36844", "Z36846" ], "Z8K4": [ "Z14", "Z36843" ], "Z8K5": "Z36835" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "remove Abstract Wikipedia link(s) to this QID" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } rsr0b87wigh64mcurcp0a995dnfsyeg 285829 285828 2026-06-23T03:19:01Z 99of9 1622 currently always removes all 285829 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36835" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z89", "Z17K2": "Z36835K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "initial fragment" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z6091", "Z17K2": "Z36835K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "QID to remove links to" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z40", "Z17K2": "Z36835K3", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "[#] remove all? [# otherwise removes last]" } ] } } ], "Z8K2": "Z89", "Z8K3": [ "Z20", "Z36836", "Z36845", "Z36844", "Z36846" ], "Z8K4": [ "Z14", "Z36843" ], "Z8K5": "Z36835" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "remove Abstract Wikipedia link(s) to this QID" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } thc7fewfobq9bavfnnprwxub3eeaajt 285838 285829 2026-06-23T04:17:13Z 99of9 1622 nudge 285838 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36835" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z89", "Z17K2": "Z36835K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "initial fragment" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z6091", "Z17K2": "Z36835K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "QID to remove links to" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z40", "Z17K2": "Z36835K3", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "[#] remove all? [# otherwise removes last]" } ] } } ], "Z8K2": "Z89", "Z8K3": [ "Z20", "Z36836", "Z36845", "Z36844", "Z36846" ], "Z8K4": [ "Z14", "Z36843" ], "Z8K5": "Z36835" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "remove Abstract Wikipedia link(s) to this QID" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31", { "Z1K1": "Z31", "Z31K1": "Z1002", "Z31K2": [ "Z6", "strip link" ] } ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } 9npuwukd2z345vm0fxbpmoxycj4ejlp 285850 285838 2026-06-23T05:18:59Z 99of9 1622 285850 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36835" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z89", "Z17K2": "Z36835K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "initial fragment" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z6091", "Z17K2": "Z36835K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "QID to remove links to" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z40", "Z17K2": "Z36835K3", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "remove all? (otherwise removes last)" } ] } } ], "Z8K2": "Z89", "Z8K3": [ "Z20", "Z36836", "Z36845", "Z36844", "Z36846" ], "Z8K4": [ "Z14", "Z36843" ], "Z8K5": "Z36835" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "remove Abstract Wikipedia link(s) to this QID" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31", { "Z1K1": "Z31", "Z31K1": "Z1002", "Z31K2": [ "Z6", "strip link" ] } ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } jaxl7mmxiz9x0wiwvbdg87rj60mtdti 285852 285850 2026-06-23T05:49:18Z 99of9 1622 more like a wiki sentence 285852 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36835" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z89", "Z17K2": "Z36835K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "initial fragment" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z6091", "Z17K2": "Z36835K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "QID to remove links to" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z40", "Z17K2": "Z36835K3", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "remove all? (otherwise leaves first)" } ] } } ], "Z8K2": "Z89", "Z8K3": [ "Z20", "Z36836", "Z36845", "Z36844", "Z36846" ], "Z8K4": [ "Z14", "Z36843" ], "Z8K5": "Z36835" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "remove Abstract Wikipedia link(s) to this QID" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31", { "Z1K1": "Z31", "Z31K1": "Z1002", "Z31K2": [ "Z6", "strip link" ] } ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } 15x9v0yxyjzcv2ejelsr8ioz8luolxk 285856 285852 2026-06-23T05:56:19Z 99of9 1622 Added Z36852 to the approved list of test cases 285856 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36835" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z89", "Z17K2": "Z36835K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "initial fragment" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z6091", "Z17K2": "Z36835K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "QID to remove links to" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z40", "Z17K2": "Z36835K3", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "remove all? (otherwise leaves first)" } ] } } ], "Z8K2": "Z89", "Z8K3": [ "Z20", "Z36836", "Z36845", "Z36844", "Z36846", "Z36852" ], "Z8K4": [ "Z14", "Z36843" ], "Z8K5": "Z36835" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "remove Abstract Wikipedia link(s) to this QID" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31", { "Z1K1": "Z31", "Z31K1": "Z1002", "Z31K2": [ "Z6", "strip link" ] } ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } pspnb8ng9vcea8x3nltcmkv5mf6ldyf Z36836 0 86405 285806 2026-06-23T00:16:41Z 99of9 1622 285806 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36836" }, "Z2K2": { "Z1K1": "Z20", "Z20K1": "Z36835", "Z20K2": { "Z1K1": "Z7", "Z7K1": "Z36835", "Z36835K1": { "Z1K1": "Z89", "Z89K1": "The legislature of \u003Ca href=\"https://abstract.wikipedia.org/wiki/Q408\"\u003EAustralia\u003C/a\u003E is the \u003Ca href=\"https://abstract.wikipedia.org/wiki/Q382118\"\u003EParliament of Australia\u003C/a\u003E.\u003Csup class=\"ext-wikilambda-reference\"\u003E\u003Ca href=\"https://www.wikidata.org/wiki/Q408#P194\"\u003EWikidata: Australia (Q408#P194)\u003C/a\u003E\u003C/sup\u003E" }, "Z36835K2": { "Z1K1": "Z6091", "Z6091K1": "Q408" }, "Z36835K3": { "Z1K1": "Z40", "Z40K1": "Z41" } }, "Z20K3": { "Z1K1": "Z7", "Z7K1": "Z877", "Z877K2": { "Z1K1": "Z89", "Z89K1": "The legislature of Australia is the \u003Ca href=\"https://abstract.wikipedia.org/wiki/Q382118\"\u003EParliament of Australia\u003C/a\u003E.\u003Csup class=\"ext-wikilambda-reference\"\u003E\u003Ca href=\"https://www.wikidata.org/wiki/Q408#P194\"\u003EWikidata: Australia (Q408#P194)\u003C/a\u003E\u003C/sup\u003E" } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "remove link to AW Q408 from fragment with others" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } icyahqlxhn6uo2tv1e5gjl6ols8gu5c Z36837 0 86406 285808 2026-06-23T00:19:00Z 99of9 1622 285808 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36837" }, "Z2K2": { "Z1K1": "Z14", "Z14K1": "Z36831", "Z14K2": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z813", "Z813K1": { "Z1K1": "Z18", "Z18K1": "Z36831K2" } }, "Z802K2": { "Z1K1": "Z18", "Z18K1": "Z36831K1" }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z36831", "Z36831K1": { "Z1K1": "Z7", "Z7K1": "Z36835", "Z36835K1": { "Z1K1": "Z18", "Z18K1": "Z36831K1" }, "Z36835K2": { "Z1K1": "Z7", "Z7K1": "Z811", "Z811K1": { "Z1K1": "Z18", "Z18K1": "Z36831K2" } }, "Z36835K3": { "Z1K1": "Z40", "Z40K1": "Z41" } }, "Z36831K2": { "Z1K1": "Z7", "Z7K1": "Z812", "Z812K1": { "Z1K1": "Z18", "Z18K1": "Z36831K2" } } } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "remove AW links per list, recursive" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } kri25kcclmxpglztken7bbmb61h30jj Z36839 0 86408 285811 2026-06-23T01:57:22Z Denny 81 285811 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36839" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z89", "Z17K2": "Z36839K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "HTML" } ] } } ], "Z8K2": "Z6", "Z8K3": [ "Z20" ], "Z8K4": [ "Z14" ], "Z8K5": "Z36839" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "text content of HTML fragment" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "removes all tags and returns escaped sequences " } ] } } sv0mtyajin5uu9py5qb8rw1tqaxy2bs 285813 285811 2026-06-23T02:00:23Z Denny 81 Added Z36840 to the approved list of test cases 285813 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36839" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z89", "Z17K2": "Z36839K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "HTML" } ] } } ], "Z8K2": "Z6", "Z8K3": [ "Z20", "Z36840" ], "Z8K4": [ "Z14" ], "Z8K5": "Z36839" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "text content of HTML fragment" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "removes all tags and returns escaped sequences " } ] } } a9hmfsijq8b965mvh9odmjf63gqxim0 285815 285813 2026-06-23T02:01:55Z Denny 81 Added Z36841 to the approved list of test cases 285815 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36839" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z89", "Z17K2": "Z36839K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "HTML" } ] } } ], "Z8K2": "Z6", "Z8K3": [ "Z20", "Z36840", "Z36841" ], "Z8K4": [ "Z14" ], "Z8K5": "Z36839" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "text content of HTML fragment" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "removes all tags and returns escaped sequences " } ] } } cg8xs9f44cdr2b3e770ewcbr4slvgt9 285819 285815 2026-06-23T02:11:31Z Denny 81 Added Z36842 to the approved list of test cases 285819 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36839" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z89", "Z17K2": "Z36839K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "HTML" } ] } } ], "Z8K2": "Z6", "Z8K3": [ "Z20", "Z36840", "Z36841", "Z36842" ], "Z8K4": [ "Z14" ], "Z8K5": "Z36839" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "text content of HTML fragment" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "removes all tags and returns escaped sequences " } ] } } fyvfsj3gu2u8dri3b6ta94q82za9p9a 285893 285819 2026-06-23T08:52:21Z Denny 81 Added Z36860 to the approved list of implementations 285893 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36839" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z89", "Z17K2": "Z36839K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "HTML" } ] } } ], "Z8K2": "Z6", "Z8K3": [ "Z20", "Z36840", "Z36841", "Z36842" ], "Z8K4": [ "Z14", "Z36860" ], "Z8K5": "Z36839" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "text content of HTML fragment" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "removes all tags and returns escaped sequences " } ] } } my6duzq8zl5biiqaws0q7so1g9av03h Z36840 0 86409 285812 2026-06-23T02:00:14Z Denny 81 285812 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36840" }, "Z2K2": { "Z1K1": "Z20", "Z20K1": "Z36839", "Z20K2": { "Z1K1": "Z7", "Z7K1": "Z36839", "Z36839K1": { "Z1K1": "Z89", "Z89K1": "to each according to their needs" } }, "Z20K3": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K2": "Clarkson murder, imprisonment, and death" } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "text only" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } c4vv6j3sauwvtu94v2o1jqplptkhk8e 285891 285812 2026-06-23T08:51:53Z Denny 81 copy and paste error 285891 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36840" }, "Z2K2": { "Z1K1": "Z20", "Z20K1": "Z36839", "Z20K2": { "Z1K1": "Z7", "Z7K1": "Z36839", "Z36839K1": { "Z1K1": "Z89", "Z89K1": "to each according to their needs" } }, "Z20K3": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K2": "to each according to their needs" } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "text only" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } 5zxnmzkaiymsut9yya4mvbl4oppcdkc Z36841 0 86410 285814 2026-06-23T02:01:40Z Denny 81 285814 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36841" }, "Z2K2": { "Z1K1": "Z20", "Z20K1": "Z36839", "Z20K2": { "Z1K1": "Z7", "Z7K1": "Z36839", "Z36839K1": { "Z1K1": "Z89", "Z89K1": "by the \u003Cstrong\u003Estrength\u003C/strong\u003E of the people" } }, "Z20K3": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K2": "by the strength of the people" } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "tag removal" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } f0jrxhahudm2348zbe7klwq550jqe0d Z36842 0 86411 285818 2026-06-23T02:10:38Z Denny 81 285818 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36842" }, "Z2K2": { "Z1K1": "Z20", "Z20K1": "Z36839", "Z20K2": { "Z1K1": "Z7", "Z7K1": "Z36839", "Z36839K1": { "Z1K1": "Z89", "Z89K1": "we need to exchange \u0026lt; and \u0026amp; and \u0026gt;, that's all" } }, "Z20K3": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K2": "we need to exchange \u003C and \u0026 and \u003E, that's all" } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "HTML entities" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } clqythvhyvjnllxwi5bcx1r9dtvl6z5 Z36843 0 86412 285820 2026-06-23T02:44:47Z 99of9 1622 something like this 285820 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36843" }, "Z2K2": { "Z1K1": "Z14", "Z14K1": "Z36835", "Z14K2": { "Z1K1": "Z7", "Z7K1": "Z27861", "Z27861K1": { "Z1K1": "Z7", "Z7K1": "Z12316", "Z12316K1": { "Z1K1": "Z7", "Z7K1": "Z21394", "Z21394K1": [ "Z6", "\u003Ca\\s+[^\u003E]*href=[\"\\']https:\\/\\/abstract\\.wikipedia\\.org\\/wiki\\/", { "Z1K1": "Z7", "Z7K1": "Z20041", "Z20041K1": { "Z1K1": "Z18", "Z18K1": "Z36835K2" } }, "[\"\\'][^\u003E]*\u003E([\\s\\S]*?)\u003C\\/a\u003E" ] }, "Z12316K2": { "Z1K1": "Z7", "Z7K1": "Z25833", "Z25833K1": { "Z1K1": "Z7", "Z7K1": "Z27854", "Z27854K1": { "Z1K1": "Z18", "Z18K1": "Z36835K1" } }, "Z25833K2": { "Z1K1": "Z7", "Z7K1": "Z21394", "Z21394K1": [ "Z6", "\u003Ca\\s+[^\u003E]*href=[\"\\']https:\\/\\/abstract\\.wikipedia\\.org\\/wiki\\/", { "Z1K1": "Z7", "Z7K1": "Z20041", "Z20041K1": { "Z1K1": "Z18", "Z18K1": "Z36835K2" } }, "[\"\\'][^\u003E]*\u003E([\\s\\S]*?)\u003C\\/a\u003E" ] }, "Z25833K3": "" }, "Z12316K3": { "Z1K1": "Z7", "Z7K1": "Z27854", "Z27854K1": { "Z1K1": "Z18", "Z18K1": "Z36835K1" } }, "Z12316K4": "gi" } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "remove specific AW link(s), compose" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } 8fw2w8udeto11wrjrfzl74h3qnkj646 285822 285820 2026-06-23T02:49:50Z 99of9 1622 this! 285822 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36843" }, "Z2K2": { "Z1K1": "Z14", "Z14K1": "Z36835", "Z14K2": { "Z1K1": "Z7", "Z7K1": "Z27861", "Z27861K1": { "Z1K1": "Z7", "Z7K1": "Z12316", "Z12316K1": { "Z1K1": "Z7", "Z7K1": "Z21394", "Z21394K1": [ "Z6", "\u003Ca\\s+[^\u003E]*href=[\"\\']https:\\/\\/abstract\\.wikipedia\\.org\\/wiki\\/", { "Z1K1": "Z7", "Z7K1": "Z20041", "Z20041K1": { "Z1K1": "Z18", "Z18K1": "Z36835K2" } }, "[\"\\'][^\u003E]*\u003E([\\s\\S]*?)\u003C\\/a\u003E" ] }, "Z12316K2": "$1", "Z12316K3": { "Z1K1": "Z7", "Z7K1": "Z27854", "Z27854K1": { "Z1K1": "Z18", "Z18K1": "Z36835K1" } }, "Z12316K4": "gi" } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "remove specific AW link(s), compose" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } h5larbjpxardos0qsiilv5t2if92gha 285834 285822 2026-06-23T04:02:12Z 99of9 1622 rearrange to deal with boolean option 285834 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36843" }, "Z2K2": { "Z1K1": "Z14", "Z14K1": "Z36835", "Z14K2": { "Z1K1": "Z7", "Z7K1": "Z27861", "Z27861K1": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z18", "Z18K1": "Z36835K3" }, "Z802K2": { "Z1K1": "Z7", "Z7K1": "Z12316", "Z12316K1": { "Z1K1": "Z7", "Z7K1": "Z21394", "Z21394K1": [ "Z6", "\u003Ca\\s+[^\u003E]*href=[\"\\']https:\\/\\/abstract\\.wikipedia\\.org\\/wiki\\/", { "Z1K1": "Z7", "Z7K1": "Z20041", "Z20041K1": { "Z1K1": "Z18", "Z18K1": "Z36835K2" } }, "[\"\\'][^\u003E]*\u003E([\\s\\S]*?)\u003C\\/a\u003E" ] }, "Z12316K2": "$1", "Z12316K3": { "Z1K1": "Z7", "Z7K1": "Z27854", "Z27854K1": { "Z1K1": "Z18", "Z18K1": "Z36835K1" } }, "Z12316K4": "gi" }, "Z802K3": { "Z1K1": "Z18", "Z18K1": "Z36835K1" } } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "remove specific AW link(s), compose" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } tr2mg0eptp0gm80zxjxhonv8229bww5 285835 285834 2026-06-23T04:03:05Z 99of9 1622 match types 285835 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36843" }, "Z2K2": { "Z1K1": "Z14", "Z14K1": "Z36835", "Z14K2": { "Z1K1": "Z7", "Z7K1": "Z27861", "Z27861K1": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z18", "Z18K1": "Z36835K3" }, "Z802K2": { "Z1K1": "Z7", "Z7K1": "Z12316", "Z12316K1": { "Z1K1": "Z7", "Z7K1": "Z21394", "Z21394K1": [ "Z6", "\u003Ca\\s+[^\u003E]*href=[\"\\']https:\\/\\/abstract\\.wikipedia\\.org\\/wiki\\/", { "Z1K1": "Z7", "Z7K1": "Z20041", "Z20041K1": { "Z1K1": "Z18", "Z18K1": "Z36835K2" } }, "[\"\\'][^\u003E]*\u003E([\\s\\S]*?)\u003C\\/a\u003E" ] }, "Z12316K2": "$1", "Z12316K3": { "Z1K1": "Z7", "Z7K1": "Z27854", "Z27854K1": { "Z1K1": "Z18", "Z18K1": "Z36835K1" } }, "Z12316K4": "gi" }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z27854", "Z27854K1": { "Z1K1": "Z18", "Z18K1": "Z36835K1" } } } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "remove specific AW link(s), compose" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } p51z5vv5im5kws63gvny2nqnuhjbp5n 285836 285835 2026-06-23T04:06:29Z 99of9 1622 negative lookahead for last match 285836 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36843" }, "Z2K2": { "Z1K1": "Z14", "Z14K1": "Z36835", "Z14K2": { "Z1K1": "Z7", "Z7K1": "Z27861", "Z27861K1": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z18", "Z18K1": "Z36835K3" }, "Z802K2": { "Z1K1": "Z7", "Z7K1": "Z12316", "Z12316K1": { "Z1K1": "Z7", "Z7K1": "Z21394", "Z21394K1": [ "Z6", "\u003Ca\\s+[^\u003E]*href=[\"\\']https:\\/\\/abstract\\.wikipedia\\.org\\/wiki\\/", { "Z1K1": "Z7", "Z7K1": "Z20041", "Z20041K1": { "Z1K1": "Z18", "Z18K1": "Z36835K2" } }, "[\"\\'][^\u003E]*\u003E([\\s\\S]*?)\u003C\\/a\u003E" ] }, "Z12316K2": "$1", "Z12316K3": { "Z1K1": "Z7", "Z7K1": "Z27854", "Z27854K1": { "Z1K1": "Z18", "Z18K1": "Z36835K1" } }, "Z12316K4": "gi" }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z12316", "Z12316K1": { "Z1K1": "Z7", "Z7K1": "Z21394", "Z21394K1": [ "Z6", "\u003Ca\\s+[^\u003E]*href=[\"\\']https:\\/\\/abstract\\.wikipedia\\.org\\/wiki\\/", { "Z1K1": "Z7", "Z7K1": "Z20041", "Z20041K1": { "Z1K1": "Z18", "Z18K1": "Z36835K2" } }, "[\"\\'][^\u003E]*\u003E([\\s\\S]*?)\u003C\\/a\u003E", "(?!.*", "\u003Ca\\s+[^\u003E]*href=[\"\\']https:\\/\\/abstract\\.wikipedia\\.org\\/wiki\\/", { "Z1K1": "Z7", "Z7K1": "Z20041", "Z20041K1": { "Z1K1": "Z18", "Z18K1": "Z36835K2" } }, "[\"\\'][^\u003E]*\u003E([\\s\\S]*?)\u003C\\/a\u003E)" ] }, "Z12316K2": "$1", "Z12316K3": { "Z1K1": "Z7", "Z7K1": "Z27854", "Z27854K1": { "Z1K1": "Z18", "Z18K1": "Z36835K1" } }, "Z12316K4": "gi" } } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "remove specific AW link(s), compose" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } 5q4ssxfap319h6ioek0bqr3imcw97tp 285837 285836 2026-06-23T04:16:27Z 99of9 1622 something like this 285837 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36843" }, "Z2K2": { "Z1K1": "Z14", "Z14K1": "Z36835", "Z14K2": { "Z1K1": "Z7", "Z7K1": "Z27861", "Z27861K1": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z18", "Z18K1": "Z36835K3" }, "Z802K2": { "Z1K1": "Z7", "Z7K1": "Z12316", "Z12316K1": { "Z1K1": "Z7", "Z7K1": "Z21394", "Z21394K1": [ "Z6", "\u003Ca\\s+[^\u003E]*href=[\"\\']https:\\/\\/abstract\\.wikipedia\\.org\\/wiki\\/", { "Z1K1": "Z7", "Z7K1": "Z20041", "Z20041K1": { "Z1K1": "Z18", "Z18K1": "Z36835K2" } }, "[\"\\'][^\u003E]*\u003E([\\s\\S]*?)\u003C\\/a\u003E" ] }, "Z12316K2": "$1", "Z12316K3": { "Z1K1": "Z7", "Z7K1": "Z27854", "Z27854K1": { "Z1K1": "Z18", "Z18K1": "Z36835K1" } }, "Z12316K4": "gi" }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z12316", "Z12316K1": { "Z1K1": "Z7", "Z7K1": "Z21394", "Z21394K1": [ "Z6", "\u003Ca\\s+[^\u003E]*href=[\"\\']https:\\/\\/abstract\\.wikipedia\\.org\\/wiki\\/", { "Z1K1": "Z7", "Z7K1": "Z20041", "Z20041K1": { "Z1K1": "Z18", "Z18K1": "Z36835K2" } }, "[\"\\'][^\u003E]*\u003E([\\s\\S]*?)\u003C\\/a\u003E", "(?!.*", "\u003Ca\\s+[^\u003E]*href=[\"\\']https:\\/\\/abstract\\.wikipedia\\.org\\/wiki\\/", { "Z1K1": "Z7", "Z7K1": "Z20041", "Z20041K1": { "Z1K1": "Z18", "Z18K1": "Z36835K2" } }, "[\"\\'][^\u003E]*\u003E[\\s\\S]*?\u003C\\/a\u003E)" ] }, "Z12316K2": "$1", "Z12316K3": { "Z1K1": "Z7", "Z7K1": "Z27854", "Z27854K1": { "Z1K1": "Z18", "Z18K1": "Z36835K1" } }, "Z12316K4": "i" } } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "remove specific AW link(s), compose" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } 22fshppu7vk51mz3xen1sus6dwz2kaw 285849 285837 2026-06-23T05:17:33Z 99of9 1622 improve 285849 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36843" }, "Z2K2": { "Z1K1": "Z14", "Z14K1": "Z36835", "Z14K2": { "Z1K1": "Z7", "Z7K1": "Z27861", "Z27861K1": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z18", "Z18K1": "Z36835K3" }, "Z802K2": { "Z1K1": "Z7", "Z7K1": "Z12316", "Z12316K1": { "Z1K1": "Z7", "Z7K1": "Z21394", "Z21394K1": [ "Z6", "\u003Ca\\s+[^\u003E]*href=[\"\\']https:\\/\\/abstract\\.wikipedia\\.org\\/wiki\\/", { "Z1K1": "Z7", "Z7K1": "Z20041", "Z20041K1": { "Z1K1": "Z18", "Z18K1": "Z36835K2" } }, "[\"\\'][^\u003E]*\u003E([\\s\\S]*?)\u003C\\/a\u003E" ] }, "Z12316K2": "$1", "Z12316K3": { "Z1K1": "Z7", "Z7K1": "Z27854", "Z27854K1": { "Z1K1": "Z18", "Z18K1": "Z36835K1" } }, "Z12316K4": "gi" }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z12316", "Z12316K1": { "Z1K1": "Z7", "Z7K1": "Z21394", "Z21394K1": [ "Z6", "\u003Ca\\s+[^\u003E]*href=[\"\\']https:\\/\\/abstract\\.wikipedia\\.org\\/wiki\\/", { "Z1K1": "Z7", "Z7K1": "Z20041", "Z20041K1": { "Z1K1": "Z18", "Z18K1": "Z36835K2" } }, "[\"\\'][^\u003E]*\u003E([^\u003C]*?)\u003C\\/a\u003E", "(?!.*", "\u003Ca\\s+[^\u003E]*href=[\"\\']https:\\/\\/abstract\\.wikipedia\\.org\\/wiki\\/", { "Z1K1": "Z7", "Z7K1": "Z20041", "Z20041K1": { "Z1K1": "Z18", "Z18K1": "Z36835K2" } }, "[\"\\'][^\u003E]*\u003E[^\u003C]*?\u003C\\/a\u003E)" ] }, "Z12316K2": "$1", "Z12316K3": { "Z1K1": "Z7", "Z7K1": "Z27854", "Z27854K1": { "Z1K1": "Z18", "Z18K1": "Z36835K1" } }, "Z12316K4": "i" } } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "remove specific AW link(s), compose" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } czoemgocxatokj5xllpc61pnocbfumk 285851 285849 2026-06-23T05:48:38Z 99of9 1622 leave first only 285851 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36843" }, "Z2K2": { "Z1K1": "Z14", "Z14K1": "Z36835", "Z14K2": { "Z1K1": "Z7", "Z7K1": "Z27861", "Z27861K1": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z18", "Z18K1": "Z36835K3" }, "Z802K2": { "Z1K1": "Z7", "Z7K1": "Z12316", "Z12316K1": { "Z1K1": "Z7", "Z7K1": "Z21394", "Z21394K1": [ "Z6", "\u003Ca\\s+[^\u003E]*href=[\"\\']https:\\/\\/abstract\\.wikipedia\\.org\\/wiki\\/", { "Z1K1": "Z7", "Z7K1": "Z20041", "Z20041K1": { "Z1K1": "Z18", "Z18K1": "Z36835K2" } }, "[\"\\'][^\u003E]*\u003E([\\s\\S]*?)\u003C\\/a\u003E" ] }, "Z12316K2": "$1", "Z12316K3": { "Z1K1": "Z7", "Z7K1": "Z27854", "Z27854K1": { "Z1K1": "Z18", "Z18K1": "Z36835K1" } }, "Z12316K4": "gi" }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z12316", "Z12316K1": { "Z1K1": "Z7", "Z7K1": "Z21394", "Z21394K1": [ "Z6", "(?\u003C=", "\u003Ca\\s+[^\u003E]*href=[\"\\']https:\\/\\/abstract\\.wikipedia\\.org\\/wiki\\/", { "Z1K1": "Z7", "Z7K1": "Z20041", "Z20041K1": { "Z1K1": "Z18", "Z18K1": "Z36835K2" } }, "[\"\\'][^\u003E]*\u003E[^\u003C]*?\u003C\\/a\u003E.*)", "\u003Ca\\s+[^\u003E]*href=[\"\\']https:\\/\\/abstract\\.wikipedia\\.org\\/wiki\\/", { "Z1K1": "Z7", "Z7K1": "Z20041", "Z20041K1": { "Z1K1": "Z18", "Z18K1": "Z36835K2" } }, "[\"\\'][^\u003E]*\u003E([^\u003C]*?)\u003C\\/a\u003E" ] }, "Z12316K2": "$1", "Z12316K3": { "Z1K1": "Z7", "Z7K1": "Z27854", "Z27854K1": { "Z1K1": "Z18", "Z18K1": "Z36835K1" } }, "Z12316K4": "ig" } } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "remove specific AW link(s), compose" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } gn433r9cz7cyumxu52shf7xwytxzamv Z36844 0 86413 285824 2026-06-23T02:53:13Z 99of9 1622 285824 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36844" }, "Z2K2": { "Z1K1": "Z20", "Z20K1": "Z36835", "Z20K2": { "Z1K1": "Z7", "Z7K1": "Z36835", "Z36835K1": { "Z1K1": "Z89", "Z89K1": "\u003Ca href=\"https://abstract.wikipedia.org/wiki/Q408\"\u003EAustralia\u003C/a\u003E \u003Ca href=\"https://abstract.wikipedia.org/wiki/Q408\"\u003EAustralia\u003C/a\u003E \u003Ca href=\"https://abstract.wikipedia.org/wiki/Q408\"\u003EAustralia\u003C/a\u003E" }, "Z36835K2": { "Z1K1": "Z6091", "Z6091K1": "Q408" }, "Z36835K3": { "Z1K1": "Z40", "Z40K1": "Z42" } }, "Z20K3": { "Z1K1": "Z7", "Z7K1": "Z877", "Z877K2": { "Z1K1": "Z89", "Z89K1": "\u003Ca href=\"https://abstract.wikipedia.org/wiki/Q408\"\u003EAustralia\u003C/a\u003E \u003Ca href=\"https://abstract.wikipedia.org/wiki/Q408\"\u003EAustralia\u003C/a\u003E Australia" } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "remove only the last of 3 links to this QID" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } l1tlfd7nftnut8pdfhn5vx0ulot3gcz 285853 285824 2026-06-23T05:53:17Z 99of9 1622 285853 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36844" }, "Z2K2": { "Z1K1": "Z20", "Z20K1": "Z36835", "Z20K2": { "Z1K1": "Z7", "Z7K1": "Z36835", "Z36835K1": { "Z1K1": "Z89", "Z89K1": "\u003Ca href=\"https://abstract.wikipedia.org/wiki/Q408\"\u003EAustralia\u003C/a\u003E \u003Ca href=\"https://abstract.wikipedia.org/wiki/Q408\"\u003EAustralia\u003C/a\u003E \u003Ca href=\"https://abstract.wikipedia.org/wiki/Q408\"\u003EAustralia\u003C/a\u003E" }, "Z36835K2": { "Z1K1": "Z6091", "Z6091K1": "Q408" }, "Z36835K3": { "Z1K1": "Z40", "Z40K1": "Z42" } }, "Z20K3": { "Z1K1": "Z7", "Z7K1": "Z877", "Z877K2": { "Z1K1": "Z89", "Z89K1": "\u003Ca href=\"https://abstract.wikipedia.org/wiki/Q408\"\u003EAustralia\u003C/a\u003E Australia Australia" } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "remove all but the first of 3 links to this QID" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } qdyr4b22q38xkuc4b28zcxc5sbx3ndz Z36845 0 86414 285825 2026-06-23T03:16:23Z 99of9 1622 285825 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36845" }, "Z2K2": { "Z1K1": "Z20", "Z20K1": "Z36835", "Z20K2": { "Z1K1": "Z7", "Z7K1": "Z36835", "Z36835K1": { "Z1K1": "Z89", "Z89K1": "\u003Ca href=\"https://abstract.wikipedia.org/wiki/Q408\"\u003EAustralia\u003C/a\u003E \u003Ca href=\"https://abstract.wikipedia.org/wiki/Q408\"\u003EAust.\u003C/a\u003E \u003Ca href=\"https://abstract.wikipedia.org/wiki/Q408\"\u003EAUS\u003C/a\u003E" }, "Z36835K2": { "Z1K1": "Z6091", "Z6091K1": "Q408" }, "Z36835K3": { "Z1K1": "Z40", "Z40K1": "Z41" } }, "Z20K3": { "Z1K1": "Z7", "Z7K1": "Z877", "Z877K2": { "Z1K1": "Z89", "Z89K1": "Australia Aust. AUS" } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "3 links with different texts, remove all links" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } 17qw78w820flrx1vdg2gc9m21ekkpek Z36846 0 86415 285827 2026-06-23T03:17:27Z 99of9 1622 285827 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36846" }, "Z2K2": { "Z1K1": "Z20", "Z20K1": "Z36835", "Z20K2": { "Z1K1": "Z7", "Z7K1": "Z36835", "Z36835K1": { "Z1K1": "Z89", "Z89K1": "\u003Ca href=\"https://abstract.wikipedia.org/wiki/Q408\"\u003EAustralia\u003C/a\u003E \u003Ca href=\"https://abstract.wikipedia.org/wiki/Q408\"\u003EAust.\u003C/a\u003E \u003Ca href=\"https://abstract.wikipedia.org/wiki/Q408\"\u003EAUS\u003C/a\u003E" }, "Z36835K2": { "Z1K1": "Z6091", "Z6091K1": "Q408" }, "Z36835K3": { "Z1K1": "Z40", "Z40K1": "Z42" } }, "Z20K3": { "Z1K1": "Z7", "Z7K1": "Z877", "Z877K2": { "Z1K1": "Z89", "Z89K1": "\u003Ca href=\"https://abstract.wikipedia.org/wiki/Q408\"\u003EAustralia\u003C/a\u003E \u003Ca href=\"https://abstract.wikipedia.org/wiki/Q408\"\u003EAust.\u003C/a\u003E AUS" } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "3 links with different texts, remove only the last" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } fr2mlcvx07fzss2vcuud86guyk6qikt 285854 285827 2026-06-23T05:54:05Z 99of9 1622 285854 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36846" }, "Z2K2": { "Z1K1": "Z20", "Z20K1": "Z36835", "Z20K2": { "Z1K1": "Z7", "Z7K1": "Z36835", "Z36835K1": { "Z1K1": "Z89", "Z89K1": "\u003Ca href=\"https://abstract.wikipedia.org/wiki/Q408\"\u003EAustralia\u003C/a\u003E \u003Ca href=\"https://abstract.wikipedia.org/wiki/Q408\"\u003EAust.\u003C/a\u003E \u003Ca href=\"https://abstract.wikipedia.org/wiki/Q408\"\u003EAUS\u003C/a\u003E" }, "Z36835K2": { "Z1K1": "Z6091", "Z6091K1": "Q408" }, "Z36835K3": { "Z1K1": "Z40", "Z40K1": "Z42" } }, "Z20K3": { "Z1K1": "Z7", "Z7K1": "Z877", "Z877K2": { "Z1K1": "Z89", "Z89K1": "\u003Ca href=\"https://abstract.wikipedia.org/wiki/Q408\"\u003EAustralia\u003C/a\u003E Aust. AUS" } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "3 links with different texts, remove all but first" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } hw7nzh6tozsgjxo5c4xb6bd91sna9rz Z36847 0 86416 285830 2026-06-23T03:41:58Z Davoryunsavory 91108 Added a niche test case to showing how standard methods won't always produce accurate results 285830 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36847" }, "Z2K2": { "Z1K1": "Z20", "Z20K1": "Z10012", "Z20K2": { "Z1K1": "Z7", "Z7K1": "Z10012", "Z10012K1": "🇺🇸👨‍👩‍👧‍👦" }, "Z20K3": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K2": "👨‍👩‍👧‍👦🇺🇸" } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Emoji sequences and combined characters" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } ey5foi9323vq1j7le9i7ou18hatiljl Z36848 0 86417 285831 2026-06-23T03:50:13Z Davoryunsavory 91108 Added a solution to the testcase testing for combined characters and emoji sequences 285831 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36848" }, "Z2K2": { "Z1K1": "Z14", "Z14K1": "Z10012", "Z14K3": { "Z1K1": "Z16", "Z16K1": "Z600", "Z16K2": "function Z10012( Z10012K1 ) {\n\tif (!Intl.Segmenter) return [...Z10012K1].reverse().join(\"\");\n\tconst segmenter = new Intl.Segmenter(undefined, { granularity: 'grapheme' });\n\tconst segments = [...segmenter.segment(Z10012K1)].map(s =\u003E s.segment);\n\treturn segments.reverse().join(\"\");\n}" } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Combined characters and emoji sequences" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "This function will handle combined characters and emoji sequences" } ] } } dai67jzfupq77ugpuur5vkm84upbdfj Z36849 0 86418 285839 2026-06-23T04:53:17Z Jsamwrites 938 285839 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36849" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z60", "Z17K2": "Z36849K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "language" } ] } } ], "Z8K2": "Z89", "Z8K3": [ "Z20" ], "Z8K4": [ "Z14" ], "Z8K5": "Z36849" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "French pronouns table" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } eg16yq934436qdf0sh293l1jpu5ee1t 285841 285839 2026-06-23T04:59:49Z Jsamwrites 938 Added Z36850 to the approved list of implementations 285841 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36849" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z60", "Z17K2": "Z36849K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "language" } ] } } ], "Z8K2": "Z89", "Z8K3": [ "Z20" ], "Z8K4": [ "Z14", "Z36850" ], "Z8K5": "Z36849" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "French pronouns table" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } k6p49xkqdo6cw4hsq871u41hdaeio3s 285848 285841 2026-06-23T05:08:19Z Jsamwrites 938 Added Z36851 to the approved list of test cases 285848 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36849" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z60", "Z17K2": "Z36849K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "language" } ] } } ], "Z8K2": "Z89", "Z8K3": [ "Z20", "Z36851" ], "Z8K4": [ "Z14", "Z36850" ], "Z8K5": "Z36849" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "French pronouns table" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } kcpfk3q5lezdmz89w1eltm4jceeumak Z36850 0 86419 285840 2026-06-23T04:59:36Z Jsamwrites 938 285840 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36850" }, "Z2K2": { "Z1K1": "Z14", "Z14K1": "Z36849", "Z14K2": { "Z1K1": "Z7", "Z7K1": "Z30232", "Z30232K1": [ { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z6091" }, [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q21714344" }, { "Z1K1": "Z6091", "Z6091K1": "Q51929049" }, { "Z1K1": "Z6091", "Z6091K1": "Q51929074" } ], [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q110786" }, { "Z1K1": "Z6091", "Z6091K1": "Q146786" } ] ], "Z30232K2": [ { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z6" }, [ "Z6", { "Z1K1": "Z7", "Z7K1": "Z21806", "Z21806K1": { "Z1K1": "Z7", "Z7K1": "Z6825", "Z6825K1": { "Z1K1": "Z6095", "Z6095K1": "L9094" } }, "Z21806K2": "Z1004" }, { "Z1K1": "Z7", "Z7K1": "Z21806", "Z21806K1": { "Z1K1": "Z7", "Z7K1": "Z6825", "Z6825K1": { "Z1K1": "Z6095", "Z6095K1": "L9288" } }, "Z21806K2": "Z1004" } ], [ "Z6", { "Z1K1": "Z7", "Z7K1": "Z21806", "Z21806K1": { "Z1K1": "Z7", "Z7K1": "Z6825", "Z6825K1": { "Z1K1": "Z6095", "Z6095K1": "L750761" } }, "Z21806K2": "Z1004" }, { "Z1K1": "Z7", "Z7K1": "Z21806", "Z21806K1": { "Z1K1": "Z7", "Z7K1": "Z6825", "Z6825K1": { "Z1K1": "Z6095", "Z6095K1": "L9289" } }, "Z21806K2": "Z1004" } ], [ "Z6", { "Z1K1": "Z7", "Z7K1": "Z21806", "Z21806K1": { "Z1K1": "Z7", "Z7K1": "Z6825", "Z6825K1": { "Z1K1": "Z6095", "Z6095K1": "L9257" } }, "Z21806K2": "Z1004" }, { "Z1K1": "Z7", "Z7K1": "Z21806", "Z21806K1": { "Z1K1": "Z7", "Z7K1": "Z6825", "Z6825K1": { "Z1K1": "Z6095", "Z6095K1": "L9290" } }, "Z21806K2": "Z1004" } ] ], "Z30232K3": { "Z1K1": "Z7", "Z7K1": "Z24766", "Z24766K1": { "Z1K1": "Z6091", "Z6091K1": "Q468801" }, "Z24766K2": { "Z1K1": "Z18", "Z18K1": "Z36849K1" } }, "Z30232K4": { "Z1K1": "Z18", "Z18K1": "Z36849K1" }, "Z30232K5": "Z1004", "Z30232K6": { "Z1K1": "Z40", "Z40K1": "Z42" }, "Z30232K7": { "Z1K1": "Z89", "Z89K1": "" } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "French pronouns table, comp" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } gn3x3pie51vspkrg5gac0tuapo89tuu 285842 285840 2026-06-23T05:02:09Z Jsamwrites 938 285842 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36850" }, "Z2K2": { "Z1K1": "Z14", "Z14K1": "Z36849", "Z14K2": { "Z1K1": "Z7", "Z7K1": "Z30232", "Z30232K1": [ { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z6091" }, [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q21714344" }, { "Z1K1": "Z6091", "Z6091K1": "Q51929049" }, { "Z1K1": "Z6091", "Z6091K1": "Q51929074" } ], [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q110786" }, { "Z1K1": "Z6091", "Z6091K1": "Q146786" } ] ], "Z30232K2": [ { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z6" }, [ "Z6", { "Z1K1": "Z7", "Z7K1": "Z21806", "Z21806K1": { "Z1K1": "Z7", "Z7K1": "Z6825", "Z6825K1": { "Z1K1": "Z6095", "Z6095K1": "L9094" } }, "Z21806K2": "Z1004" }, { "Z1K1": "Z7", "Z7K1": "Z21806", "Z21806K1": { "Z1K1": "Z7", "Z7K1": "Z6825", "Z6825K1": { "Z1K1": "Z6095", "Z6095K1": "L9288" } }, "Z21806K2": "Z1004" } ], [ "Z6", { "Z1K1": "Z7", "Z7K1": "Z21394", "Z21394K1": [ "Z6", { "Z1K1": "Z7", "Z7K1": "Z21806", "Z21806K1": { "Z1K1": "Z7", "Z7K1": "Z6825", "Z6825K1": { "Z1K1": "Z6095", "Z6095K1": "L9096" } }, "Z21806K2": "Z1004" }, ",", { "Z1K1": "Z7", "Z7K1": "Z21806", "Z21806K1": { "Z1K1": "Z7", "Z7K1": "Z6825", "Z6825K1": { "Z1K1": "Z6095", "Z6095K1": "L9289" } }, "Z21806K2": "Z1004" } ] }, { "Z1K1": "Z7", "Z7K1": "Z21806", "Z21806K1": { "Z1K1": "Z7", "Z7K1": "Z6825", "Z6825K1": { "Z1K1": "Z6095", "Z6095K1": "L9289" } }, "Z21806K2": "Z1004" } ], [ "Z6", { "Z1K1": "Z7", "Z7K1": "Z21806", "Z21806K1": { "Z1K1": "Z7", "Z7K1": "Z6825", "Z6825K1": { "Z1K1": "Z6095", "Z6095K1": "L9257" } }, "Z21806K2": "Z1004" }, { "Z1K1": "Z7", "Z7K1": "Z21806", "Z21806K1": { "Z1K1": "Z7", "Z7K1": "Z6825", "Z6825K1": { "Z1K1": "Z6095", "Z6095K1": "L9290" } }, "Z21806K2": "Z1004" } ] ], "Z30232K3": { "Z1K1": "Z7", "Z7K1": "Z24766", "Z24766K1": { "Z1K1": "Z6091", "Z6091K1": "Q468801" }, "Z24766K2": { "Z1K1": "Z18", "Z18K1": "Z36849K1" } }, "Z30232K4": { "Z1K1": "Z18", "Z18K1": "Z36849K1" }, "Z30232K5": "Z1004", "Z30232K6": { "Z1K1": "Z40", "Z40K1": "Z42" }, "Z30232K7": { "Z1K1": "Z89", "Z89K1": "" } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "French pronouns table, comp" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } oibzw4667pmd9yy08rhguhkvj632ado 285844 285842 2026-06-23T05:04:34Z Jsamwrites 938 285844 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36850" }, "Z2K2": { "Z1K1": "Z14", "Z14K1": "Z36849", "Z14K2": { "Z1K1": "Z7", "Z7K1": "Z30232", "Z30232K1": [ { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z6091" }, [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q21714344" }, { "Z1K1": "Z6091", "Z6091K1": "Q51929049" }, { "Z1K1": "Z6091", "Z6091K1": "Q51929074" } ], [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q110786" }, { "Z1K1": "Z6091", "Z6091K1": "Q146786" } ] ], "Z30232K2": [ { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z6" }, [ "Z6", { "Z1K1": "Z7", "Z7K1": "Z21806", "Z21806K1": { "Z1K1": "Z7", "Z7K1": "Z6825", "Z6825K1": { "Z1K1": "Z6095", "Z6095K1": "L9094" } }, "Z21806K2": "Z1004" }, { "Z1K1": "Z7", "Z7K1": "Z21394", "Z21394K1": [ "Z6", { "Z1K1": "Z7", "Z7K1": "Z21806", "Z21806K1": { "Z1K1": "Z7", "Z7K1": "Z6825", "Z6825K1": { "Z1K1": "Z6095", "Z6095K1": "L9096" } }, "Z21806K2": "Z1004" }, ", ", { "Z1K1": "Z7", "Z7K1": "Z21806", "Z21806K1": { "Z1K1": "Z7", "Z7K1": "Z6825", "Z6825K1": { "Z1K1": "Z6095", "Z6095K1": "L9289" } }, "Z21806K2": "Z1004" } ] } ], [ "Z6", { "Z1K1": "Z7", "Z7K1": "Z21394", "Z21394K1": [ "Z6", { "Z1K1": "Z7", "Z7K1": "Z21806", "Z21806K1": { "Z1K1": "Z7", "Z7K1": "Z6825", "Z6825K1": { "Z1K1": "Z6095", "Z6095K1": "L2926" } }, "Z21806K2": "Z1004" }, ", ", { "Z1K1": "Z7", "Z7K1": "Z21806", "Z21806K1": { "Z1K1": "Z7", "Z7K1": "Z6825", "Z6825K1": { "Z1K1": "Z6095", "Z6095K1": "L9288" } }, "Z21806K2": "Z1004" } ] }, { "Z1K1": "Z7", "Z7K1": "Z21806", "Z21806K1": { "Z1K1": "Z7", "Z7K1": "Z6825", "Z6825K1": { "Z1K1": "Z6095", "Z6095K1": "L9289" } }, "Z21806K2": "Z1004" } ], [ "Z6", { "Z1K1": "Z7", "Z7K1": "Z21394", "Z21394K1": [ "Z6", { "Z1K1": "Z7", "Z7K1": "Z21806", "Z21806K1": { "Z1K1": "Z7", "Z7K1": "Z6825", "Z6825K1": { "Z1K1": "Z6095", "Z6095K1": "L9257" } }, "Z21806K2": "Z1004" }, ", ", { "Z1K1": "Z7", "Z7K1": "Z21806", "Z21806K1": { "Z1K1": "Z7", "Z7K1": "Z6825", "Z6825K1": { "Z1K1": "Z6095", "Z6095K1": "L9188" } }, "Z21806K2": "Z1004" } ] }, { "Z1K1": "Z7", "Z7K1": "Z21394", "Z21394K1": [ "Z6", { "Z1K1": "Z7", "Z7K1": "Z21806", "Z21806K1": { "Z1K1": "Z7", "Z7K1": "Z6825", "Z6825K1": { "Z1K1": "Z6095", "Z6095K1": "L9290" } }, "Z21806K2": "Z1004" }, ", ", { "Z1K1": "Z7", "Z7K1": "Z21806", "Z21806K1": { "Z1K1": "Z7", "Z7K1": "Z6825", "Z6825K1": { "Z1K1": "Z6095", "Z6095K1": "L9435" } }, "Z21806K2": "Z1004" } ] } ] ], "Z30232K3": { "Z1K1": "Z7", "Z7K1": "Z24766", "Z24766K1": { "Z1K1": "Z6091", "Z6091K1": "Q468801" }, "Z24766K2": { "Z1K1": "Z18", "Z18K1": "Z36849K1" } }, "Z30232K4": { "Z1K1": "Z18", "Z18K1": "Z36849K1" }, "Z30232K5": "Z1004", "Z30232K6": { "Z1K1": "Z40", "Z40K1": "Z42" }, "Z30232K7": { "Z1K1": "Z89", "Z89K1": "" } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "French pronouns table, comp" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } fcc8bkhpbz6ivhm04lm6sgzmae6jzaq 285845 285844 2026-06-23T05:05:56Z Jsamwrites 938 285845 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36850" }, "Z2K2": { "Z1K1": "Z14", "Z14K1": "Z36849", "Z14K2": { "Z1K1": "Z7", "Z7K1": "Z30232", "Z30232K1": [ { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z6091" }, [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q21714344" }, { "Z1K1": "Z6091", "Z6091K1": "Q51929049" }, { "Z1K1": "Z6091", "Z6091K1": "Q51929074" } ], [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q110786" }, { "Z1K1": "Z6091", "Z6091K1": "Q146786" } ] ], "Z30232K2": [ { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z6" }, [ "Z6", { "Z1K1": "Z7", "Z7K1": "Z21806", "Z21806K1": { "Z1K1": "Z7", "Z7K1": "Z6825", "Z6825K1": { "Z1K1": "Z6095", "Z6095K1": "L9094" } }, "Z21806K2": "Z1004" }, { "Z1K1": "Z7", "Z7K1": "Z21394", "Z21394K1": [ "Z6", { "Z1K1": "Z7", "Z7K1": "Z21806", "Z21806K1": { "Z1K1": "Z7", "Z7K1": "Z6825", "Z6825K1": { "Z1K1": "Z6095", "Z6095K1": "L2260" } }, "Z21806K2": "Z1004" }, ", ", { "Z1K1": "Z7", "Z7K1": "Z21806", "Z21806K1": { "Z1K1": "Z7", "Z7K1": "Z6825", "Z6825K1": { "Z1K1": "Z6095", "Z6095K1": "L9288" } }, "Z21806K2": "Z1004" } ] } ], [ "Z6", { "Z1K1": "Z7", "Z7K1": "Z21394", "Z21394K1": [ "Z6", { "Z1K1": "Z7", "Z7K1": "Z21806", "Z21806K1": { "Z1K1": "Z7", "Z7K1": "Z6825", "Z6825K1": { "Z1K1": "Z6095", "Z6095K1": "L9096" } }, "Z21806K2": "Z1004" }, ", ", { "Z1K1": "Z7", "Z7K1": "Z21806", "Z21806K1": { "Z1K1": "Z7", "Z7K1": "Z6825", "Z6825K1": { "Z1K1": "Z6095", "Z6095K1": "L9289" } }, "Z21806K2": "Z1004" } ] }, { "Z1K1": "Z7", "Z7K1": "Z21806", "Z21806K1": { "Z1K1": "Z7", "Z7K1": "Z6825", "Z6825K1": { "Z1K1": "Z6095", "Z6095K1": "L9289" } }, "Z21806K2": "Z1004" } ], [ "Z6", { "Z1K1": "Z7", "Z7K1": "Z21394", "Z21394K1": [ "Z6", { "Z1K1": "Z7", "Z7K1": "Z21806", "Z21806K1": { "Z1K1": "Z7", "Z7K1": "Z6825", "Z6825K1": { "Z1K1": "Z6095", "Z6095K1": "L9257" } }, "Z21806K2": "Z1004" }, ", ", { "Z1K1": "Z7", "Z7K1": "Z21806", "Z21806K1": { "Z1K1": "Z7", "Z7K1": "Z6825", "Z6825K1": { "Z1K1": "Z6095", "Z6095K1": "L9188" } }, "Z21806K2": "Z1004" } ] }, { "Z1K1": "Z7", "Z7K1": "Z21394", "Z21394K1": [ "Z6", { "Z1K1": "Z7", "Z7K1": "Z21806", "Z21806K1": { "Z1K1": "Z7", "Z7K1": "Z6825", "Z6825K1": { "Z1K1": "Z6095", "Z6095K1": "L9290" } }, "Z21806K2": "Z1004" }, ", ", { "Z1K1": "Z7", "Z7K1": "Z21806", "Z21806K1": { "Z1K1": "Z7", "Z7K1": "Z6825", "Z6825K1": { "Z1K1": "Z6095", "Z6095K1": "L9435" } }, "Z21806K2": "Z1004" } ] } ] ], "Z30232K3": { "Z1K1": "Z7", "Z7K1": "Z24766", "Z24766K1": { "Z1K1": "Z6091", "Z6091K1": "Q468801" }, "Z24766K2": { "Z1K1": "Z18", "Z18K1": "Z36849K1" } }, "Z30232K4": { "Z1K1": "Z18", "Z18K1": "Z36849K1" }, "Z30232K5": "Z1004", "Z30232K6": { "Z1K1": "Z40", "Z40K1": "Z42" }, "Z30232K7": { "Z1K1": "Z89", "Z89K1": "" } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "French pronouns table, comp" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } i8avf1w9noftz3zrodjlg3d63x085gi 285846 285845 2026-06-23T05:06:45Z Jsamwrites 938 285846 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36850" }, "Z2K2": { "Z1K1": "Z14", "Z14K1": "Z36849", "Z14K2": { "Z1K1": "Z7", "Z7K1": "Z30232", "Z30232K1": [ { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z6091" }, [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q21714344" }, { "Z1K1": "Z6091", "Z6091K1": "Q51929049" }, { "Z1K1": "Z6091", "Z6091K1": "Q51929074" } ], [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q110786" }, { "Z1K1": "Z6091", "Z6091K1": "Q146786" } ] ], "Z30232K2": [ { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z6" }, [ "Z6", { "Z1K1": "Z7", "Z7K1": "Z21806", "Z21806K1": { "Z1K1": "Z7", "Z7K1": "Z6825", "Z6825K1": { "Z1K1": "Z6095", "Z6095K1": "L9094" } }, "Z21806K2": "Z1004" }, { "Z1K1": "Z7", "Z7K1": "Z21394", "Z21394K1": [ "Z6", { "Z1K1": "Z7", "Z7K1": "Z21806", "Z21806K1": { "Z1K1": "Z7", "Z7K1": "Z6825", "Z6825K1": { "Z1K1": "Z6095", "Z6095K1": "L2926" } }, "Z21806K2": "Z1004" }, ", ", { "Z1K1": "Z7", "Z7K1": "Z21806", "Z21806K1": { "Z1K1": "Z7", "Z7K1": "Z6825", "Z6825K1": { "Z1K1": "Z6095", "Z6095K1": "L9288" } }, "Z21806K2": "Z1004" } ] } ], [ "Z6", { "Z1K1": "Z7", "Z7K1": "Z21394", "Z21394K1": [ "Z6", { "Z1K1": "Z7", "Z7K1": "Z21806", "Z21806K1": { "Z1K1": "Z7", "Z7K1": "Z6825", "Z6825K1": { "Z1K1": "Z6095", "Z6095K1": "L9096" } }, "Z21806K2": "Z1004" }, ", ", { "Z1K1": "Z7", "Z7K1": "Z21806", "Z21806K1": { "Z1K1": "Z7", "Z7K1": "Z6825", "Z6825K1": { "Z1K1": "Z6095", "Z6095K1": "L9289" } }, "Z21806K2": "Z1004" } ] }, { "Z1K1": "Z7", "Z7K1": "Z21806", "Z21806K1": { "Z1K1": "Z7", "Z7K1": "Z6825", "Z6825K1": { "Z1K1": "Z6095", "Z6095K1": "L9289" } }, "Z21806K2": "Z1004" } ], [ "Z6", { "Z1K1": "Z7", "Z7K1": "Z21394", "Z21394K1": [ "Z6", { "Z1K1": "Z7", "Z7K1": "Z21806", "Z21806K1": { "Z1K1": "Z7", "Z7K1": "Z6825", "Z6825K1": { "Z1K1": "Z6095", "Z6095K1": "L9257" } }, "Z21806K2": "Z1004" }, ", ", { "Z1K1": "Z7", "Z7K1": "Z21806", "Z21806K1": { "Z1K1": "Z7", "Z7K1": "Z6825", "Z6825K1": { "Z1K1": "Z6095", "Z6095K1": "L9188" } }, "Z21806K2": "Z1004" } ] }, { "Z1K1": "Z7", "Z7K1": "Z21394", "Z21394K1": [ "Z6", { "Z1K1": "Z7", "Z7K1": "Z21806", "Z21806K1": { "Z1K1": "Z7", "Z7K1": "Z6825", "Z6825K1": { "Z1K1": "Z6095", "Z6095K1": "L9290" } }, "Z21806K2": "Z1004" }, ", ", { "Z1K1": "Z7", "Z7K1": "Z21806", "Z21806K1": { "Z1K1": "Z7", "Z7K1": "Z6825", "Z6825K1": { "Z1K1": "Z6095", "Z6095K1": "L9435" } }, "Z21806K2": "Z1004" } ] } ] ], "Z30232K3": { "Z1K1": "Z7", "Z7K1": "Z24766", "Z24766K1": { "Z1K1": "Z6091", "Z6091K1": "Q468801" }, "Z24766K2": { "Z1K1": "Z18", "Z18K1": "Z36849K1" } }, "Z30232K4": { "Z1K1": "Z18", "Z18K1": "Z36849K1" }, "Z30232K5": "Z1004", "Z30232K6": { "Z1K1": "Z40", "Z40K1": "Z42" }, "Z30232K7": { "Z1K1": "Z89", "Z89K1": "" } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "French pronouns table, comp" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } r4j4jar8uvyoylg93up99z08hcadjct Z36851 0 86420 285847 2026-06-23T05:08:04Z Jsamwrites 938 285847 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36851" }, "Z2K2": { "Z1K1": "Z20", "Z20K1": "Z36849", "Z20K2": { "Z1K1": "Z7", "Z7K1": "Z36849", "Z36849K1": "Z1002" }, "Z20K3": { "Z1K1": "Z7", "Z7K1": "Z29045", "Z29045K2": "vous" } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "French pronouns table has \"vous\"" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } a2695ay3g3tz749fnb87bumdgv5xtk4 Z36852 0 86421 285855 2026-06-23T05:55:08Z 99of9 1622 285855 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36852" }, "Z2K2": { "Z1K1": "Z20", "Z20K1": "Z36835", "Z20K2": { "Z1K1": "Z7", "Z7K1": "Z36835", "Z36835K1": { "Z1K1": "Z89", "Z89K1": "\u003Ca href=\"https://abstract.wikipedia.org/wiki/Q408\"\u003EAustralia\u003C/a\u003E" }, "Z36835K2": { "Z1K1": "Z6091", "Z6091K1": "Q408" }, "Z36835K3": { "Z1K1": "Z40", "Z40K1": "Z42" } }, "Z20K3": { "Z1K1": "Z7", "Z7K1": "Z877", "Z877K2": { "Z1K1": "Z89", "Z89K1": "\u003Ca href=\"https://abstract.wikipedia.org/wiki/Q408\"\u003EAustralia\u003C/a\u003E" } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "only one (at the start), so leave it" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } k36iuif85dsfmnojhtdt3gtz1g01dh1 Z36853 0 86422 285858 2026-06-23T05:59:26Z 99of9 1622 285858 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36853" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z89", "Z17K2": "Z36853K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "initial fragment" } ] } }, { "Z1K1": "Z17", "Z17K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z6091" }, "Z17K2": "Z36853K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "list of QIDs to remove links to" } ] } } ], "Z8K2": "Z89", "Z8K3": [ "Z20" ], "Z8K4": [ "Z14" ], "Z8K5": "Z36853" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "remove duplicate Abstract Wikipedia links to QIDs" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } cokc9nawxe0ay1tixsenekvct8chbhs 285861 285858 2026-06-23T06:01:47Z 99of9 1622 Added Z36854 to the approved list of implementations 285861 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36853" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z89", "Z17K2": "Z36853K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "initial fragment" } ] } }, { "Z1K1": "Z17", "Z17K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z6091" }, "Z17K2": "Z36853K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "list of QIDs to remove links to" } ] } } ], "Z8K2": "Z89", "Z8K3": [ "Z20" ], "Z8K4": [ "Z14", "Z36854" ], "Z8K5": "Z36853" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "remove duplicate Abstract Wikipedia links to QIDs" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } az6bldjrw5mw67cchuov6l7k0imrkhe 285863 285861 2026-06-23T06:02:45Z 99of9 1622 Added Z36855 to the approved list of test cases 285863 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36853" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z89", "Z17K2": "Z36853K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "initial fragment" } ] } }, { "Z1K1": "Z17", "Z17K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z6091" }, "Z17K2": "Z36853K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "list of QIDs to remove links to" } ] } } ], "Z8K2": "Z89", "Z8K3": [ "Z20", "Z36855" ], "Z8K4": [ "Z14", "Z36854" ], "Z8K5": "Z36853" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "remove duplicate Abstract Wikipedia links to QIDs" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } rd5b2umuyrek947x4tm4h9jlvhlwzlc 285865 285863 2026-06-23T06:04:37Z 99of9 1622 Added Z36856 to the approved list of test cases 285865 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36853" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z89", "Z17K2": "Z36853K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "initial fragment" } ] } }, { "Z1K1": "Z17", "Z17K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z6091" }, "Z17K2": "Z36853K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "list of QIDs to remove links to" } ] } } ], "Z8K2": "Z89", "Z8K3": [ "Z20", "Z36855", "Z36856" ], "Z8K4": [ "Z14", "Z36854" ], "Z8K5": "Z36853" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "remove duplicate Abstract Wikipedia links to QIDs" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } 985m9wm5vd6na6f57tc6t09m1w68mr9 Z36854 0 86423 285859 2026-06-23T06:00:36Z 99of9 1622 285859 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36854" }, "Z2K2": { "Z1K1": "Z14", "Z14K1": "Z36853", "Z14K2": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z813", "Z813K1": { "Z1K1": "Z18", "Z18K1": "Z36853K2" } }, "Z802K2": { "Z1K1": "Z18", "Z18K1": "" }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z36831", "Z36831K1": { "Z1K1": "Z7", "Z7K1": "Z36835", "Z36835K1": { "Z1K1": "Z18", "Z18K1": "Z36853K1" }, "Z36835K2": { "Z1K1": "Z7", "Z7K1": "Z811", "Z811K1": { "Z1K1": "Z18", "Z18K1": "Z36853K2" } }, "Z36835K3": { "Z1K1": "Z40", "Z40K1": "Z42" } }, "Z36831K2": { "Z1K1": "Z7", "Z7K1": "Z812", "Z812K1": { "Z1K1": "Z18", "Z18K1": "Z36853K2" } } } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "remove duplicate AW links, recursive compose" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } ocbn2yumev5qnhxihp0009pi922j515 285860 285859 2026-06-23T06:00:59Z 99of9 1622 fix 285860 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36854" }, "Z2K2": { "Z1K1": "Z14", "Z14K1": "Z36853", "Z14K2": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z813", "Z813K1": { "Z1K1": "Z18", "Z18K1": "Z36853K2" } }, "Z802K2": { "Z1K1": "Z18", "Z18K1": "Z36853K1" }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z36831", "Z36831K1": { "Z1K1": "Z7", "Z7K1": "Z36835", "Z36835K1": { "Z1K1": "Z18", "Z18K1": "Z36853K1" }, "Z36835K2": { "Z1K1": "Z7", "Z7K1": "Z811", "Z811K1": { "Z1K1": "Z18", "Z18K1": "Z36853K2" } }, "Z36835K3": { "Z1K1": "Z40", "Z40K1": "Z42" } }, "Z36831K2": { "Z1K1": "Z7", "Z7K1": "Z812", "Z812K1": { "Z1K1": "Z18", "Z18K1": "Z36853K2" } } } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "remove duplicate AW links, recursive compose" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } qyfwhepusp1dcd9jodrzuham5155m42 Z36855 0 86424 285862 2026-06-23T06:02:24Z 99of9 1622 285862 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36855" }, "Z2K2": { "Z1K1": "Z20", "Z20K1": "Z36853", "Z20K2": { "Z1K1": "Z7", "Z7K1": "Z36853", "Z36853K1": { "Z1K1": "Z89", "Z89K1": "\u003Cdiv role=\"note\" class=\"hatnote navigation-not-searchable\"\u003E\u003Ci\u003EMain articles: \u003C/i\u003E\u003Ca href=\"https://abstract.wikipedia.org/wiki/Q174825\"\u003EHistory of Australia\u003C/a\u003E and \u003Ca href=\"https://abstract.wikipedia.org/wiki/Q4501797\"\u003ETimeline of Australian history\u003C/a\u003E\u003C/div\u003E" }, "Z36853K2": [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q4501797" } ] }, "Z20K3": { "Z1K1": "Z7", "Z7K1": "Z877", "Z877K2": { "Z1K1": "Z89", "Z89K1": "\u003Cdiv role=\"note\" class=\"hatnote navigation-not-searchable\"\u003E\u003Ci\u003EMain articles: \u003C/i\u003E\u003Ca href=\"https://abstract.wikipedia.org/wiki/Q174825\"\u003EHistory of Australia\u003C/a\u003E and \u003Ca href=\"https://abstract.wikipedia.org/wiki/Q4501797\"\u003ETimeline of Australian history\u003C/a\u003E\u003C/div\u003E" } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "no duplicates, return initial fragment" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } e2i4fpu415zh7p4q2ksbim6y7gnfj6c Z36856 0 86425 285864 2026-06-23T06:04:18Z 99of9 1622 285864 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36856" }, "Z2K2": { "Z1K1": "Z20", "Z20K1": "Z36853", "Z20K2": { "Z1K1": "Z7", "Z7K1": "Z36853", "Z36853K1": { "Z1K1": "Z89", "Z89K1": "\u003Ca href=\"https://abstract.wikipedia.org/wiki/Q408\"\u003EAustralia\u003C/a\u003E \u003Ca href=\"https://abstract.wikipedia.org/wiki/Q408\"\u003EAustralia\u003C/a\u003E \u003Ca href=\"https://abstract.wikipedia.org/wiki/Q408\"\u003EAustralia\u003C/a\u003E" }, "Z36853K2": [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q408" } ] }, "Z20K3": { "Z1K1": "Z7", "Z7K1": "Z877", "Z877K2": { "Z1K1": "Z89", "Z89K1": "\u003Ca href=\"https://abstract.wikipedia.org/wiki/Q408\"\u003EAustralia\u003C/a\u003E Australia Australia" } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "remove all but first of three links" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } ss1kt7q4ynjsskot43a5jiemw3i8w7t Z36857 0 86426 285871 2026-06-23T06:19:21Z Jsamwrites 938 285871 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36857" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z6091" }, "Z17K2": "Z36857K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "list of subtopic article[s] (QIDs)" } ] } }, { "Z1K1": "Z17", "Z17K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z1" }, "Z17K2": "Z36857K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "[#] list of subtopic label configurators" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z40", "Z17K2": "Z36857K3", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "[#] self reference?" } ] } } ], "Z8K2": "Z89", "Z8K3": [ "Z20" ], "Z8K4": [ "Z14" ], "Z8K5": "Z36857" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "main articles, French" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } 9wvksiz3du3a0ot4g154sk6qiujkf1s 285873 285871 2026-06-23T06:24:19Z Jsamwrites 938 Added Z36858 to the approved list of implementations 285873 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36857" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z6091" }, "Z17K2": "Z36857K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "list of subtopic article[s] (QIDs)" } ] } }, { "Z1K1": "Z17", "Z17K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z1" }, "Z17K2": "Z36857K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "[#] list of subtopic label configurators" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z40", "Z17K2": "Z36857K3", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "[#] self reference?" } ] } } ], "Z8K2": "Z89", "Z8K3": [ "Z20" ], "Z8K4": [ "Z14", "Z36858" ], "Z8K5": "Z36857" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "main articles, French" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } s62f9f7ee71lv02c74d37zgiei38l3o 285876 285873 2026-06-23T06:34:47Z Jsamwrites 938 Removed Z36858 from the approved list of implementations 285876 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36857" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z6091" }, "Z17K2": "Z36857K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "list of subtopic article[s] (QIDs)" } ] } }, { "Z1K1": "Z17", "Z17K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z1" }, "Z17K2": "Z36857K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "[#] list of subtopic label configurators" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z40", "Z17K2": "Z36857K3", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "[#] self reference?" } ] } } ], "Z8K2": "Z89", "Z8K3": [ "Z20" ], "Z8K4": [ "Z14" ], "Z8K5": "Z36857" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "main articles, French" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } 9wvksiz3du3a0ot4g154sk6qiujkf1s 285877 285876 2026-06-23T06:35:08Z Jsamwrites 938 285877 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36857" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z6091" }, "Z17K2": "Z36857K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "list of subtopic article[s] (QIDs)" } ] } }, { "Z1K1": "Z17", "Z17K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z1" }, "Z17K2": "Z36857K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "[#] list of subtopic label configurators" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z40", "Z17K2": "Z36857K3", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "[#] self reference?" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z60", "Z17K2": "Z36857K4", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "variant of French" } ] } } ], "Z8K2": "Z89", "Z8K3": [ "Z20" ], "Z8K4": [ "Z14" ], "Z8K5": "Z36857" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "main articles, French" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } qouqj3yg5t7s6d7wn8utn1261k2s8jo 285878 285877 2026-06-23T06:35:15Z Jsamwrites 938 Added Z36858 to the approved list of implementations 285878 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36857" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z6091" }, "Z17K2": "Z36857K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "list of subtopic article[s] (QIDs)" } ] } }, { "Z1K1": "Z17", "Z17K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z1" }, "Z17K2": "Z36857K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "[#] list of subtopic label configurators" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z40", "Z17K2": "Z36857K3", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "[#] self reference?" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z60", "Z17K2": "Z36857K4", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "variant of French" } ] } } ], "Z8K2": "Z89", "Z8K3": [ "Z20" ], "Z8K4": [ "Z14", "Z36858" ], "Z8K5": "Z36857" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "main articles, French" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } dfrtfjeyxkb50rn93eoqkp18grwiwh3 Z36858 0 86427 285872 2026-06-23T06:23:40Z Jsamwrites 938 285872 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36858" }, "Z2K2": { "Z1K1": "Z14", "Z14K1": "Z36857", "Z14K2": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z12755", "Z12755K1": { "Z1K1": "Z18", "Z18K1": "Z36857K1" } }, "Z802K2": { "Z1K1": "Z7", "Z7K1": "Z27849", "Z27849K1": { "Z1K1": "Z89", "Z89K1": "\u003Ci\u003EArticle détaillé : \u003C/i\u003E" }, "Z27849K2": { "Z1K1": "Z7", "Z7K1": "Z33848", "Z33848K1": { "Z1K1": "Z7", "Z7K1": "Z811", "Z811K1": { "Z1K1": "Z18", "Z18K1": "Z36857K1" } }, "Z33848K2": { "Z1K1": "Z60", "Z60K1": "fr", "Z60K2": [ "Z6" ] } } }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z27926", "Z27926K1": [ "Z89", { "Z1K1": "Z89", "Z89K1": "\u003Ci\u003EArticles détaillés : \u003C/i\u003E" }, { "Z1K1": "Z7", "Z7K1": "Z35766", "Z35766K1": { "Z1K1": "Z7", "Z7K1": "Z13464", "Z13464K1": "Z33848", "Z13464K2": { "Z1K1": "Z7", "Z7K1": "Z12967", "Z12967K1": { "Z1K1": "Z18", "Z18K1": "Z36857K1" } }, "Z13464K3": "Z1004" }, "Z35766K2": { "Z1K1": "Z89", "Z89K1": ", " } }, { "Z1K1": "Z89", "Z89K1": " and " }, { "Z1K1": "Z7", "Z7K1": "Z33848", "Z33848K1": { "Z1K1": "Z7", "Z7K1": "Z12964", "Z12964K1": { "Z1K1": "Z18", "Z18K1": "Z36857K1" } }, "Z33848K2": { "Z1K1": "Z60", "Z60K1": "fr", "Z60K2": [ "Z6" ] } } ] } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "main articles, French, comp" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } qidtq901zdx8hc1dybtkdeur5nx91oe 285874 285872 2026-06-23T06:25:25Z Jsamwrites 938 285874 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36858" }, "Z2K2": { "Z1K1": "Z14", "Z14K1": "Z36857", "Z14K2": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z12755", "Z12755K1": { "Z1K1": "Z18", "Z18K1": "Z36857K1" } }, "Z802K2": { "Z1K1": "Z7", "Z7K1": "Z27849", "Z27849K1": { "Z1K1": "Z89", "Z89K1": "\u003Ci\u003EArticle détaillé : \u003C/i\u003E" }, "Z27849K2": { "Z1K1": "Z7", "Z7K1": "Z33848", "Z33848K1": { "Z1K1": "Z7", "Z7K1": "Z811", "Z811K1": { "Z1K1": "Z18", "Z18K1": "Z36857K1" } }, "Z33848K2": { "Z1K1": "Z60", "Z60K1": "fr", "Z60K2": [ "Z6" ] } } }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z27926", "Z27926K1": [ "Z89", { "Z1K1": "Z89", "Z89K1": "\u003Ci\u003EArticles détaillés : \u003C/i\u003E" }, { "Z1K1": "Z7", "Z7K1": "Z35766", "Z35766K1": { "Z1K1": "Z7", "Z7K1": "Z13464", "Z13464K1": "Z33848", "Z13464K2": { "Z1K1": "Z7", "Z7K1": "Z12967", "Z12967K1": { "Z1K1": "Z18", "Z18K1": "Z36857K1" } }, "Z13464K3": "Z1004" }, "Z35766K2": { "Z1K1": "Z89", "Z89K1": ", " } }, { "Z1K1": "Z89", "Z89K1": " et " }, { "Z1K1": "Z7", "Z7K1": "Z33848", "Z33848K1": { "Z1K1": "Z7", "Z7K1": "Z12964", "Z12964K1": { "Z1K1": "Z18", "Z18K1": "Z36857K1" } }, "Z33848K2": { "Z1K1": "Z60", "Z60K1": "fr", "Z60K2": [ "Z6" ] } } ] } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "main articles, French, comp" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } 94hfyb39lywo0e18cf85c1bxz3zrs77 Z36859 0 86428 285885 2026-06-23T07:04:15Z 99of9 1622 285885 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36859" }, "Z2K2": { "Z1K1": "Z20", "Z20K1": "Z25326", "Z20K2": { "Z1K1": "Z7", "Z7K1": "Z25326", "Z25326K1": { "Z1K1": "Z6010", "Z6010K1": { "Z1K1": "Z19677", "Z19677K1": { "Z1K1": "Z16659", "Z16659K1": "Z16660" }, "Z19677K2": { "Z1K1": "Z13518", "Z13518K1": "999" }, "Z19677K3": { "Z1K1": "Z13518", "Z13518K1": "100" } }, "Z6010K2": { "Z1K1": "Z19677", "Z19677K1": { "Z1K1": "Z16659", "Z16659K1": "Z16660" }, "Z19677K2": { "Z1K1": "Z13518", "Z13518K1": "999" }, "Z19677K3": { "Z1K1": "Z13518", "Z13518K1": "100" } }, "Z6010K3": { "Z1K1": "Z19677", "Z19677K1": { "Z1K1": "Z16659", "Z16659K1": "Z16660" }, "Z19677K2": { "Z1K1": "Z13518", "Z13518K1": "999" }, "Z19677K3": { "Z1K1": "Z13518", "Z13518K1": "100" } }, "Z6010K4": { "Z1K1": "Z6091", "Z6091K1": "Q259502" } }, "Z25326K2": "Z1002" }, "Z20K3": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K2": "AU$9.99" } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "\"AU$9.99\" currency units before value" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } 2jfg9l9dtpuw4xqe5xn9lesr1gs8qmn Z36860 0 86429 285892 2026-06-23T08:52:10Z Denny 81 285892 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36860" }, "Z2K2": { "Z1K1": "Z14", "Z14K1": "Z36839", "Z14K3": { "Z1K1": "Z16", "Z16K1": "Z610", "Z16K2": "def Z36839(Z36839K1):\n\timport re\n\ttext = Z36839K1.Z89K1\n\ttext = re.sub('\u003C[^\u003C]+\u003E', '', text)\n\ttext = re.sub('\u0026lt;', '\u003C', text)\n\ttext = re.sub('\u0026gt;', '\u003E', text)\n\ttext = re.sub('\u0026amp;', '\u0026', text)\n\treturn text" } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } bxgh7lmp6q7leph1kno6khu9mlwf00q 285894 285892 2026-06-23T08:52:45Z Denny 81 285894 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36860" }, "Z2K2": { "Z1K1": "Z14", "Z14K1": "Z36839", "Z14K3": { "Z1K1": "Z16", "Z16K1": "Z610", "Z16K2": "def Z36839(Z36839K1):\n\timport re\n\ttext = Z36839K1.Z89K1\n\ttext = re.sub('\u003C[^\u003C]+\u003E', '', text)\n\ttext = re.sub('\u0026lt;', '\u003C', text)\n\ttext = re.sub('\u0026gt;', '\u003E', text)\n\ttext = re.sub('\u0026amp;', '\u0026', text)\n\treturn text" } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "python regular expressions for tags and entities" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } awk5hbs6e3zxjpbr4daidpw71o3ft28 Z36861 0 86430 285896 2026-06-23T08:57:21Z Denny 81 285896 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z36861" }, "Z2K2": { "Z1K1": "Z20", "Z20K1": "Z36798", "Z20K2": { "Z1K1": "Z7", "Z7K1": "Z36798", "Z36798K1": "Z36781", "Z36798K2": { "Z1K1": "Z36462", "Z36462K1": "Z1002", "Z36462K2": { "Z1K1": "Z6091", "Z6091K1": "Q1084" }, "Z36462K3": [ "Z6091" ], "Z36462K4": [ "Z36463", { "Z1K1": "Z36463", "Z36463K1": [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q110786" } ], "Z36463K2": [ "Z89", { "Z1K1": "Z89", "Z89K1": "\u003Cstrong\u003EAfrican elephant\u003C/strong\u003E" } ] }, { "Z1K1": "Z36463", "Z36463K1": [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q146786" } ], "Z36463K2": [ "Z89", { "Z1K1": "Z89", "Z89K1": "\u003Cstrong\u003EAfrican elephants\u003C/strong\u003E" } ] } ] } }, "Z20K3": { "Z1K1": "Z7", "Z7K1": "Z36717", "Z36717K2": { "Z1K1": "Z36462", "Z36462K1": "Z1002", "Z36462K2": { "Z1K1": "Z6091", "Z6091K1": "Q1401131" }, "Z36462K3": [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q110786" } ], "Z36462K4": [ "Z36463", { "Z1K1": "Z36463", "Z36463K1": [ "Z6091" ], "Z36463K2": [ "Z89", { "Z1K1": "Z89", "Z89K1": "an \u003Cstrong\u003EAfrican elephant\u003C/strong\u003E" } ] } ] } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "an African elephant" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } qay6akofpuyrlvmfqhughtrvx77r4eu