[00:31:21] Other than the ones I just submitted at RFD, every object on Wikifunctions should have at least one label. [00:39:00] There were actually a lot less labeled items than I thought there would be, so it took much shorter than expected. [03:29:32] If a function has multiple implementations, any test cases are tested against all implementations or a single one [04:02:41] All test cases are tested using each and every implementation (but the results are usually retrieved from a cache). (re @cvictorovich: If a function has multiple implementations, any test cases are tested against all implementations or a single one) [04:03:31] Isn't it only connected implementations? (re @Al: All test cases are tested using each and every implementation (but the results are usually retrieved from a cache).) [04:24:10] Initially, yes, but unconnected implementations are tested later if they have not been tested previously. There are more details in the comments on *T363908.* (re @Feeglgeef: Isn't it only connected implementations?) [07:04:15] I've finished the usage tool thingy, it's at https://wf-usage-feeglgeef.replit.app/ (https://wf-usage-feeglgeef.replit.app/). You currently put in a ZID and it returns all of it's functions, implementations, tests, and any compositions or tests that currently use it. In the future, It should also sort by these categories. [07:05:00] It is *really* fast, which I am proud of. [07:05:52] It'd probably be useful for RFDs [13:53:30] Is there some cut-off? I get nothing for Z0006 and those higher ZIDs that I’ve tried. (re @Feeglgeef: I've finished the usage tool thingy, it's at https://wf-usage-feeglgeef.replit.app/. You currently put in a ZID and it returns a...) [13:55:19] Yes, Z20002 and above (re @Al: Is there some cut-off? I get nothing for Z20006 and those higher ZIDs that I’ve tried.) [13:58:49] And nothing below Z10000? Those Z801 workarounds won’t fix themselves 😉 (re @Feeglgeef: Yes, Z20002 and above) [14:00:34] It should have found the non-builtin objects referencing builtin functions. I'll try to fix that. (re @Al: And nothing below Z10000? Those Z801 workarounds won’t fix themselves 😉) [14:02:20] Ahh, the Regex was wrong. [14:03:32] That would be useful, thank you. I’m not sure that all backlinks have been backfilled yet (although that isn’t a problem in this specific case). (re @Feeglgeef: It should have found the non-builtin objects referencing builtin functions. I'll try to fix that.) [14:04:18] Does this look good? : https://tools-static.wmflabs.org/bridgebot/d9e3fa58/file_66515.jpg [14:10:04] Looks plausible, yes 👍 (re @Feeglgeef: Does this look good?) [14:23:03] I’ll keep a tab open 👍 When does it actually hit the WMF servers? (re @Feeglgeef: Does this look good?) [14:23:46] I'm currently working on make it live update on another thread, but for now, it just used a big data dump I got in about an hour. (re @Al: I’ll keep a tab open 👍 When does it actually hit the WMF servers?) [14:29:50] It should be doing this now (re @Feeglgeef: I'm currently working on make it live update on another thread, but for now, it just used a big data dump I got in about an hour...) [14:32:27] https://tools-static.wmflabs.org/bridgebot/cf034ea0/file_66516.jpg [19:53:05] @vrandecic it is a little early but I suggest that for the Volunteer's Corner, we try to come up with a function that can connect Lexemes to Rational Numbers [20:40:19] E.g. Average form length (re @Feeglgeef: @vrandecic it is a little early but I suggest that for the Volunteer's Corner, we try to come up with a function that can connec...) [20:57:05] The categories I'm thinking of are: [20:57:06] Function (Z2K2.Z1K1 = Z8) [20:57:08] Implementation of function (Z2K2.Z1K1 = Z14 AND Z2K2.Z14K1 = ZID) [20:57:09] Implementation, composition, calling function (Z2K2.Z1K1 = Z14 AND NOT Z2K2.Z14K1 = ZID) [20:57:11] Test case of function (Z2K2.Z1K1 = Z20 AND Z2K2.Z20K1 = ZID) [20:57:12] Test case, calling function (Z2K2.Z1K1 = Z20 AND NOT Z2K2.Z20K1 = ZID) [20:57:14] Type (Z2K2.Z1K1 = Z4) [20:57:15] Other (none of above pass, for some unknown reason) [21:18:03] If I were to contribute to the encyclopedia and use it constructively on real articles, would it be ok? (re @vrandecic: I think that wouldn't be fair towards the Dagbani community, as it may skew their metrics and processes from organic usage. But ...) [21:20:01] I would expect there to be a ZID in all Z14K1 and Z20K1 keys even if it references an object that no longer exists (which should be very rare) 🤔 (re @Feeglgeef: The categories I'm thinking of are: [21:20:02] Function (Z2K2.Z1K1 = Z8) [21:20:03] Implementation of function (Z2K2.Z1K1 = Z14 AND Z2K2.Z14K1 = ZID) [21:20:05] ...) [21:21:52] My language was a little ambiguous. I mean that, if say Z10001 is an implementation of Z10000, we'd want to distinguish it from a composition that calls said function, so ZID represents the ZID of the function that would call it. (re @Al: I would expect there to be a ZID in all Z14K1 and Z20K1 keys even if it references an object that no longer exists (which [21:21:52] should...) [21:24:36] function categorize(zid, jsonData) { [21:24:36] if (jsonData.Z2K2) { [21:24:38] const dataStructure = jsonData.Z2K2; [21:24:39] if (dataStructure.Z14K1 === zid) { [21:24:41] return 'Implementation of function'; [21:24:42] } [21:24:44] if (dataStructure.Z20K1 === zid) { [21:24:45] return 'Test case of function'; [21:24:47] } [21:24:48] if (dataStructure.Z1K1 === "Z14") { [21:24:50] return 'Called by these implementations' [21:24:51] } [21:24:53] if (dataStructure.Z1K1 === "Z20") { [21:24:54] return 'Called by these tests' [21:24:56] } [21:24:57] if (dataStructure.Z1K1 === "Z8") { [21:24:59] return 'Function'; [21:25:00] } [21:25:02] } [21:25:03] return 'Other'; [21:25:05] } [21:25:06] This is what the Node code to handle it currently looks like [21:25:44] zid being the ZID that is depended on by said dependency, and jsonData being the data of the dependency [21:26:11] Ah, ZID is specifically the target ZID? (re @Feeglgeef: My language was a little ambiguous. I mean that, if say Z10001 is an implementation of Z10000, we'd want to distinguish it from ...) [21:26:30] Yes. (re @Al: Ah, ZID is specifically the target ZID?) [21:28:24] I've just deployed the categorization, so you should be able to see it. A good input to see it is Z10000 [21:29:29] Like this : https://tools-static.wmflabs.org/bridgebot/2399c32f/file_66532.jpg [21:34:48] Yes. What would really add value here is if the calling implementations and tests were grouped by their parent functions (because that’s what we don’t get from backlinks). (re @Feeglgeef: I've just deployed the categorization, so you should be able to see it. A good input to see it is Z10000) [21:38:56] So group them by their (re @Al: Yes. What would really add value here is if the calling implementations and tests were grouped by their parent functions (becaus...) [21:39:05] Z20K1? [21:39:24] Or just include it? [21:42:21] You could just include it (or the Z14K1) and order by that (within the group). (re @Feeglgeef: Or just include it?) [21:46:02] 👍, working on that. (re @Al: You could just include it (or the Z14K1) and order by that (within the group).) [21:56:08] Kinda like this? : https://tools-static.wmflabs.org/bridgebot/2e107f2f/file_66533.jpg [21:56:16] It still needs links but [21:59:50] Al Does this look good? : https://tools-static.wmflabs.org/bridgebot/97f5b3ff/file_66534.jpg [22:02:19] Pretty reasonable… 👍 (re @Feeglgeef: Al Does this look good?) [22:03:51] Ok [22:04:52] I was expecting some functions to occur more than once, but I guess it depends on the target function 🤔 (re @Feeglgeef: Al Does this look good?) [22:05:51] I mean its kinda rare for a function to have 2 implementations that both call Join Two Strings (re @Al: I was expecting some functions to occur more than once, but I guess it depends on the target function 🤔) [22:06:28] Z11646 actually appears twice [22:12:23] Fun thing you can do: If you put Z2 in, you can get a list of all test cases/implementations and their associated function [22:13:58] I’d be worried about the server load 😮 (re @Feeglgeef: Fun thing you can do: If you put Z2 in, you can get a list of all test cases/implementations and their associated function) [22:16:37] I don't think it's actually that bad. It's only fetching ~100kb of data. [22:18:45] Nevermind, it's 1,241,805 characters in JSON. [22:19:32] That [22:23:11] And who knows how hard WMF’s servers had to work to get that? 🤷‍♂️ Just a thought… (re @Feeglgeef: That's probably because I'm being really inefficient with it.) [22:24:02] I've fetched about 1,000,000,000 characters from the API (re @Al: And who knows how hard WMF’s servers had to work to get that? 🤷‍♂️ Just a thought…) [22:24:30] There's probably a more efficient way to do it [22:25:45] There generally is 😏 (re @Feeglgeef: There's probably a more efficient way to do it) [22:31:40] Specifically, I should probably be just checking Recent Changes instead of just checking every single ZObject multiple times a day (re @Feeglgeef: There's probably a more efficient way to do it) [22:37:44] Makes sense. Not that I’ve thought it through… It’s getting late! (re @Feeglgeef: Specifically, I should probably be just checking Recent Changes instead of just checking every single ZObject multiple times a d...) [23:39:48] I've created Z20064 for this (re @Feeglgeef: @vrandecic it is a little early but I suggest that for the Volunteer's Corner, we try to come up with a function that can connec...)