There's a "try this function" section, which I couldn't get to take any sort of input on a few tries. It always ended up with a field that said "no results found" on typing things in it.
There's a "current object" section, displaying some kind of alien script. Like, what is this? Is it supposed to tell me something?
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z110"
},
"Z2K2": {
"Z1K1": "Z8",
this goes on for quite a while
Clearly I am not part of the target audience here. But who is?
We didn’t want to announce Wikifunctions before you can edit it (what’s a wiki if you can’t edit it?).
It is currently in locked-down testing. We have been slowly configuring and testing the wiki, the first new multilingual project in over 12 years! It is more complicated than a normal new wiki, in many ways.
We are expecting to open it to broader editing in the next few days - on or after August 1. We are planning an announcement at that time.
> Clearly I am not part of the target audience here. But who is?
Abstract Wikipedia authors/editors/developers is the target audience. As far as I can gather, this Wikifunctions is supposed to be a store for functions used to generate text based on data, so things can be written once and "automatically" translated to many languages, meaning you can cover more by stating "facts" and matching them to outputted language somehow.
> Clearly I am not part of the target audience here. But who is?
That would be my biggest criticism too. It seems like the target audience and use cases are ill defined, vauge and hand wavey.
I dont think it knows really what it wants to be, other than definitely some sort of function store for abstract wikipedia, which also seems unnessarily complex.
Quite frankly i get massive wikidata-second-system vibes from the whole thing.
1) create a page that declares a public interface for your function: and there is no "camel case vs snake case": function name will be "Format person info" (and フォーマット担当者情報 in Japanese, and so on), with arguments: name, surname, birth date, death date (again, people can add translations)
2) create a set of tests
3) create an implementation using Zvalues (see links above for example) in public interface. If this is not the first version, implementation can be reviewed and approved by some reviewer.
It's a semantic triple [1] - subject, predicate, object - made out of Wikidata IDs. Some common ones one will quickly memorize and start to recognize if one works with Wikidata.
Q42 is Douglas Adams [2], P31 is instance of [3], Q5 is human [4].
Fascinating. I had no idea people are still working on this sweetly optimistic project, like the architects writing a catalog of data taxonomies but for the unfenced territory of humanities knowledge. Sort of a modern Principia Mathematica with the Gödel of GPT4 waiting to blow it away.
Still 42 for Douglas Adams manually assigned token is a nice touch.
It was interesting. I don’t think cheap matters much in a world:where compute is still getting rapidly cheaper. Being certain is good, but the throwmtons of data i to massive models keeps beating everything else. I do think the models need to get some self doubt built in some how but I don’t think the data catalog will be more than post NOC fact checking. Fun times tho.
Edited: It was interesting. I don’t think cheap matters much in a world where compute is still getting rapidly cheaper. Being certain is good, but the throw tons of data into massive models keeps beating everything else. I do think the models need to get some self doubt built in some how but I don’t think the data catalog will be more than post hoc fact checking. Fun times tho. (My mom was an editor, she'd be horrified.)
Thanks, that's really helpful to read! The page is still in a very early stage. You are right, the current object section is just confusing, we will remove it.
I think the Current Object section is specifying the hierarchy for the current page and also the hierarchy compared to its relatives. All the Z something identifiers are objects/pages/concepts
As n gets bigger, it goes from 0 to 1.
When n equals x, it is 0.5
As n gets bigger, the difference between n and n+1 gets smaller
For two sufficiently large n's, the results are equal.
Say somebody told you about a new cafe in town and that it is completely awesome. The best cafe ever. What probability do you assign to it really being an exceptionally awesome cafe? If your x is 3, then the probability after one person praised it is 25%:
1/(1+3) = 0.25
And if another person told you about that cafe being awesome, the probability becomes 40%:
2/(2+3) = 0.4
And after 3 people told you the cafe is awesome, chances are 50% it really is:
3/(3+3) = 0.5
The changes in probability are pretty strong at the beginning. But after 1000 people reported about the awesome cafe, the next report makes almost no difference anymore. It only ups the probability from 0.997008 to 0.997011.
By changing x from 3 to 4, your formula becomes more "suspicious", by changing it from 3 to 2, it becomes more "gullible".
I wonder if this formula has a name already. If not, "the trust formula" might be a candidate.
One way to view this formula is to use the fact that the Beta distribution is a conjugate prior for the binomial distribution.
Essentially if you have a Beta(a, b) prior then your prior mean is a/(a+b) and after observing n samples from a Bernoulli distribution that are all positive, your posterior is Beta(a+n, b) with posterior mean (a+n)/(a+n+b). So in your example you effectively have a Beta(0, x) prior and x (“suspicious”/“gullible”) is directly interpreted as the strength of your prior!
Yeah, that's a lot of jargon associated with Bayesian statistics, but at it's root the idea is simple. How to merge information you have before observing some data (a.k.a. prior) with new information you just observed, to obtain updated information (a.k.a. posterior) that includes both what you believed initially + the new evidence you observed.
The probability machinery (Bayes rule) is a principled way to do this, and in the case of count data (number of positive reviews for the cafe) works out to give be a simple fraction n/(n+x).
Define:
x = parameter of how skeptical you are in general about the quality of cafes (large x very sceptical),
m = number of positive reviews for the cafe,
p = m+1 / (m+1+x) your belief (expressed as a probability) that the cafe is good after hearing m positive reviews about it.
Learning about the binomial and the beta distribution would help you see where the formula comes from. People really like Bayesian machinery, because it has a logical/consistent feel: i.e. rather than coming up with some formula out of thin air, you derive the formula based on general rules about reasoning under uncertainty + updating beliefs.
> Can this way to view the formula be expressed without the terms
You're asking "Can this way of viewing the formula in terms of Bayesian probability be expressed without any of the machinery of Bayesian probability?".
Also, in case anyone is interested, the uninformative Jeffreys prior for this in Bayesian statistics (meaning it does not assume anything and is invariant to certain transformations of the inputs) is Beta(0.5, 0.5). Thus the initial guess is 0.5, and it evolves from there from the data.
This reminds me of a simple algorithm to determine which product to choose if all have similar ratings but varying number of votes - add one positive and one negative review and recalculate.
Good point! The formula indeed assumes a base probability of zero. That's actually why I put "The best cafe ever" in there and that it is called an "exceptionally awesome cafe". I got a bit lax later in the text just calling it "awesome".
For a cafe aficionado, who spends most of their time in cafes, reading HN and thinking about formulas, the probability that some random cafe becomes their new favorite is virtually zero.
In other words: The more cafes you already know, the closer to zero the chance that a random one will be the best of them all.
So yeah, it is a formula for cafe lovers. Not for the casual person who is happy with a random filtered coffee swill from the vending machine. Those would have to add a base probability, turning the formula into something like b+n/(n+x)*(1-b).
I think Laplace's Rule of succession [1] could be better here. It assumes there are binary "successes" and "failures" (e.g. thumbs up/down). Let s be the number of "successes", n be the total number of data points (successes+failures), and 1/x the prior probability of a success. Then the probability that the next data point will be a success is:
(s + 1)/(n + x)
E.g. for prior probability 1/2 (success and failure initially equally likely), x=2, so
Interesting philosophical question: is awesomeness intrinsic or extrinsic (a matter of perception)? Can anything be intrinsic?
If it's intrinsic, then yes, the probability that it is awesome should not be zero if you've never heard of it. It's awesomeness exists independently of any measurement. But, by definition, you can't know it's awesomeness until you measure it, so awesomeness quotients only matter after they've been measured. And a measured value value must be expressible/observable outside the system (i.e. extrinsic).
I would view this as Laplace smoothing or Additive smoothing for binary distributions (https://en.wikipedia.org/wiki/Additive_smoothing). I use it all the time when I'm working estimating rates of some events from a limited amount of samples.
I think the jump from 1->2 ppl telling me it's the greatest cafe ever is a bigger jump than the jump from 0->1. Thus I think it would be more like a logarithmic curve.
Wikifunctions is primarily intended to support Wikimedia projects, especially Abstract Wikipedia. It is the code complement to Wikidata lexemes. It might be used for cross-wiki templates to reduce existing duplication and other auxiliary tasks, but Abstract Wikipedia is the reason it was proposed.
Abstract Wikipedia is in my opinion fully wasted work. Translation is free and instant for web pages. I've lived for 6 years in different countries where I don't speak the local language (and am also not native English speaking) and you can get all the information you need by translating. This works totally fine already today with Google translate on top of pages.
And the pages that are in fact missing from "the other language wikis" are local myths, local detailed history, things that wouldn't even be in the English Wikipedia or in the "abstract" version in the first place.
And also very often quite incorrect, and you don't know where.
I think the general idea of a "universal language" Wikipedia, that gets flawlessly rendered into local languages, is laudable.
But I don't think anybody would ever edit in it directly -- what I want to see is that when somebody edits Wikipedia to add a new sentence, it attempts to translate into the "universal language" and prompt you to select from ambiguities.
E.g. if you wrote:
I saw someone on the hill with a telescope.
It would ask you to confirm which of the following was intended:
[ ] "with a telescope" modifies "I saw"
[ ] "with a telescope" modifies "someone on the hill"
It would be a real dream to have translated outputs that were guaranteed to be correct, because the intermediate representation was correct, because the translation from someone's native language to that intermediate translation was verified in this way.
I would still invest those resources into documenting more knowledge that currently doesn't exist online on their original languages and immediately translating to English. For better or for worse English is the "abstract" representation of language online and there's so much absent stuff that worrying about another universal format seems pointless.
It's not either/or. Different groups of people can do different things at once. And of the two things you're comparing, one is expert technical/engineering and the other requires expert archivists/translators. They're totally different groups.
This works totally fine already today with Google translate on top of pages.
How would anyone even know? By definition, if someone is using Google Translate, he already doesn't know the language, so how can he judge the quality of the results?
My company spends millions on professional translators because products like Google Translate are so bad for anything beyond the most basic uses.
This is wrong on two counts: 1) translation is not the same as abstraction and 2) having the world's encyclopedia translated by an advertising company is not exactly everybody's idea for how things should be organized
Of course wrong criticism doesnt mean the project is a success (i think its been going for a few years now). The documentation in particular does not highlight what this infrastructure is good for.
Denny Vrandečić — the lead developer of Wikifunctions, former Germany PM of Wikidata, co-developer of Semantic Wikipedia, and former member of the Wikimedia Foundation Board of Trustees — also helped develop Google's Knowledge Graph from 2013 to 2020. None of this is hidden, it's even on his Wikipedia article.[1]
The "having the world's encyclopedia translated by an advertising company" ship sailed years ago. All of these projects are supported, directly and indirectly, by exactly that motivation. The ultimate goal of commercial enterprises is to take zero-cost volunteer projects like Wikipedia and OpenStreetMap and make them cheaper for enterprises to associate user input with compatible monetization. It's now just a bonus side-effect, rather than their mission, that any public good comes from these projects.
"translated by an advertising company" is akin to "Tor was funded by the US government" - it's basically organizational ad hominem.
Google's translations are fine and are high quality and don't yet (or in the foreseeable future) inject ad copy into the translations (like they do on eg Google Maps for POIs).
That's apples and oranges though. Tor is out of control of the US military as this point (+/- your tinfoil hat level), whereas Google Translate was created and is owned solely by Google. I'm not saying GP is fully correct but context is important.
I personally think using transformers for, well, transforming input into another language is going to be a great approach once hardware catches up for local offline use at a reasonable speed and hallucinations are minimized.
Corporate entities come and go. They bait-and-switch at will as they are ultimately only answering to legal obligations and in particular shareholders. It would be odd to overlay such a liability and uncertainty on top of wikipedia.
While abstraction is not the same as translation, if the wikipedia community wants specifically a translation service that is more tightly integrated into the platform imho it should be a fully open source project.
My point is about translating after the fact by the end user solving the problem. Now you can use Google translate for free, later you can use your own LLM. Abstracting the knowledge away is wasted work. We already have it in a definitive source language (english for most things, local languages for local things).
This abstract Wikipedia sounds like Esperanto to me.
Translation solves an immediate problem of giving human users a glimpse of Wikipedias knowledge base, but it is still stricly wrapped in textual data. It is still a content black box that, e.g an LLM would not make more transparent.
Abstraction builds a mathematical representation. Its a new product and it opens up new use cases that have nothing to do with translation. It may on occasion be more factually correct than a translation, or may be used in conjuction with translation, but is potentially a far more flexible and versatile technology.
The challege is really matching ambition and vision with resources and execution. Especially if it is to attract volunteers to crowdsource the enormous task, it needs to have a very clear and attractive onboarding ramp. The somewhat related Wikidata / wikibase projects seem to have a reasonable fan base so there is precedent.
Similar to abstracting maps and geography into GIS data and getting things like geographic proximity and POI-type filtering with lower overhead than creating a category tree for place articles in Wikipedia.
For instance, Wikipedia right now relies quite a lot entirely on manual tagging (authored categories) for classifying related subjects. If you want a list of all notable association footballers, for instance, then the best way to get one is to go to Category:Association football players. But then you're stuck in a very human, flawed, and often in-flux attempt to reach a consensus definition of that, and the list remains out of reach. (Hell, American players are categorized as "soccer players" under the same tree, confounding things like search, because that's the kind of thing Americans do.)
With abstraction, you get classification for much less, and the consensus problem moves from an arbitrary, authored category tree to a much narrower space. If an article is about a footballer, and the abstract data for that subject contains occupation Q937857 (association football player). The dialect and language don't matter — a footballer is a footballer. If you just want a list of footballers, you can get just a list of footballers without even going near things like SPARQL: https://www.wikidata.org/w/index.php?title=Special:WhatLinks...
You might well be right. Furthermore, English is on its way to become the universal language everyone speaks. You are however wrong about comparing AW to translators, which are probabilistic algorithms whereas AW is intended to be as exact as Wolfram Alpha. AW should be also able to use Wikidata to generate unique articles that do not exist even in English.
BTW, translation tech is not as good as you paint it here. I regularly translate my English blog posts to Slovak and every blog post requires 20-30 corrections. DeepL is marginally better than Google Translate. GPT-4 cannot even get word inflection right, an embarrassing fail for such a large model.
Wow. This feels like someone has taken a Borges parody and ran with it:
> What is the scope of the new "Wikipedia of functions"?
> [...] Vrandečić explained the concept of Abstract Wikipedia and a "wiki for functions" using an example describing political happenings involving San Francisco mayor London Breed:
> "Instead of saying "in order to deny her the advantage of the incumbent, the board votes in January 2018 to replace her with Mark Farrell as interim mayor until the special elections", imagine we say something more abstract such as elect(elector: Board of Supervisors, electee: Mark Farrell, position: Mayor of San Francisco, reason: deny(advantage of incumbency, London Breed)) – and even more, all of these would be language-independent identifiers, so that thing would actually look more like Q40231(Q3658756, Q6767574, Q1343202(Q6015536, Q6669880)).
> [...] We still need to translate [this] abstract content to natural language. So we would need to know that the elect constructor mentioned above takes the three parameters in the example, and that we need to make a template such as {elector} elected {electee} to {position} in order to {reason} (something that looks much easier in this example than it is for most other cases). And since the creation of such translators has to be made for every supported language, we need to have a place to create such translators so that a community can do it.
I'm not sure I'm smart enough to decide if this is all really stupid or not. If I had to summarize my feelings it would probably be along the lines of Q6767574, (Q6015536, Q654880), Q65660.
THAT's the reason? Conveying a sentence as a series of propositions or a tree with case labels has been tried in the previous century, without success. It does not offer a good basis for translation, as e.g. Philips' Rosetta project showed. It works for simple cases, but as soon as the text becomes more complex, it runs into all the horrible little details that make up language.
A simple example: in Spanish you don't say "I like X" but "X pleases me". In Dutch you say, "I find X tasty" or "X is good" or something else entirely, depending on what X is. Those are three fairly close languages. How can you encode that simple sentence in such a way that it translates properly for all languages, now and in the future?
Symbolic representation isn't going to cut it outside a very narrow subset of language. It might work for highly technical, unambiguous, simple content, but not in general. Whatever you think of ChatGPT, it shows that a neural network can't be beaten for linguistic representation.
> It might work for highly technical, unambiguous, simple content
I mean, the goal is wikipedia lite basically - so they are targeting technical unambigious simple content.
My understanding is the goal to target small languages where it is unlikely anyone is ever going to put in the effort (or have a big enough corpus) to do the statistical translation methods. Sort of a - this will be better than nothing approach.
The original paper [0] envisages a much wider scope. Vrandecic literally quotes "a world in which every single human being can freely share in the sum of
all knowledge".
It also makes the task of the editor much, much more difficult than it is now.
RIST 9E03 is the RIST that RIST 11A4 denotes by the arbitrarily chosen bit-pattern that, construed as an integer, is 9E03 (in hexadecimal notation). Click here for more about the system of bit-pattern designators used by RIST 11A4 to replace the obsolescent nomenclature systems of "natural languages." Click here if you would like the designator RIST 9E03 to be automatically replaced by a conventional designator (name) as you browse this web site.
Click.
From now on. the expression RIST 9E03 will be replaced by the expression Andrew Loeb. Warning: we consider such nomenclature fundamentally invalid, and do not recommend its use, but have provided it as a service to first-time visitors to this Web site who are not accustomed to thinking in terms of RISTs.
... Click.
RIST stands for Relatively Independent Sub-Totality.
... Click.
A hive mind is a social organization of RISTs that are capable of processing semantic memes ("thinking"). These could be either carbon-based or silicon-based. RISTs who enter a hive mind surrender their independent identities (which are mere illusions anyway). For purposes of convenience, the constituents of the hive mind are assigned bit-pattern designators.
Click.
A bit-pattern designator is a random series of bits used to uniquely identify a RIST.
Vrandečić was Google's consultant on the old Freebase's RDF export. Wikidata, which he helped create, succeeded it. It's the same people pushing the same solution under different names.
Google.org donated money and staffing to support the Abstract Wikipedia project. Two of the seven Google.org fellows who were supporting the Abstract Wikipedia team are permanently based in Zurich[1], and Google was able to provide space to meet. It was the most practical place to hold an off-site.
Do you think they should have to embrace austerity because they’ve asked for donations? Or do you think they can use donations in lieu of advertising dollars and otherwise function like any other similar company? Do you think it’s possible they were invited by google.org or received donations for the off-site itself?
I guess I’m not sure why this is remotely worth commenting on, but it seems to have struck a nerve. It’s like being upset that NPR takes donations but then gives its staff 15 minutes off to watch a tiny desk concert sometimes.
>Do you think they should have to embrace austerity because they’ve asked for donations?
"Not embracing austerity" is one thing, "asking for donations" is another thing, "what Wikimedia currently does" is something completely different from these two things.
When you get a banner featuring Jimmy Wales with the words "Please read: A personal appeal from Wikipedia founder Jimmy Wales" and then something like this:
>To all our readers in the UK,
>Please don’t scroll past this. This Friday, for the 1st time recently, we interrupt your reading to humbly ask you to support Wikipedia’s independence. Only 2% of our readers give. Many think they’ll give later, but then forget. If you donate just £2, or whatever you can this Friday, Wikipedia could keep thriving for years.
The impression is that Wikipedia (NOT Wikimedia) is in need of money to keep operating, which is simply not true.
Wikipedia has got more than enough money to keep operating, if Wikipedia, ever in our lifetimes, goes under, it won't be because they weren't given enough money but because they mishandled it.
It's like having a beggar come to you saying that he needs to eat, then seeing him 20 minutes later driving a porsche. I consider this to be abhorrent behavior. I donated once and will NEVER. EVER do it again and I advise nobody does it. If you want to do a good deed donate to the Internet Archive.
> if Wikipedia, ever in our lifetimes, goes under, it won't be because they weren't given enough money
I agree, I think it will be because they'll accept more money from commercial actors on the terms of whoever these actors are – Google currently does not seem to force any conditions on WP, as far as I can tell.
> If you want to do a good deed donate to the Internet Archive.
I agree with this as well but I consider both Wikimedia and the Internet Archive as extremely important.
Charitable causes always are at risk of "wasting" money. But the reason for that is that in a purely capitalistic sense the cause itself is not profitable.
The people whose business models benefit from this project's success will ensure it's staffed and funded. Your donations are emphatically not needed, nor will declining to donate do anything to slow it down.
Thanks, I haven't been donating to WP but did not know all of that either (apart from the Google employees who are mentioned and linked already in the conversations referenced in this thread).
1 million doesn't even seem that much, but still, yes, nobody knows what donations actually mean behind the scenes (who believes in philantropy anyway?)
I mean, it's clear how much Google and others profit from WP and especially Wikidata already.
So I spent what amounts to almost an hour today being amazed and entertained by the perceiced absurdity of this.
Now, after a good dinner, reading the FAQ again, I'm starting to roughly feel like this might actually make sense, in another world, or maybe it might even make sense in reality when better fleshed-out?
And also I start to remember what this reminds me of (plenty of other entertaining references already here in the comments):
Two days later he started poking around. He started with a seemingly-innocuous file called “customers.json” and stared in confusion at its contents:
{
"File" : "Customers.json",
"Class" : "Customers",
"Author" : "redacted@redacted.com",
"Purpose" : "",
"Functions" : [
568,
899,
900,
901,
902,
1877,
2880
]
}
WikiFunctions, I believe, has a larger purpose in the context of Wikimedia wikis, and that is they are building a library of functions that can be called directly from wikitext and the code will be evaluated automatically when the page is rendered.
I think the idea is to provide an easy way to embed dynamic content into the text of a Wikipedia article. This should provide a nice compliment to the way WikiData is used to dynamically insert data into articles.
Note: I worked for the Wikimedia foundation in the past, however, I wasn't involved with WikiFunctions. I just have some vague memories of internal product planning discussions about the feature.
The ability to invoke functions from wikitext and interpolate the result into the rendered page has been a feature of Wikipedia for over 17 years[1]. The ability to write custom functions in Lua was rolled out a decade ago[2].
> We are not competing with sites such as gist, or sites such as rosettacode.org, esolangs.org, or helloworldcollection.de, where code snippets are collected either to share them quickly with others or around a specific theme in different programming languages.
The documentation doesn't quite match the ambition of the project which may complicate the onboarding of new contributions
Some suggestions for immediate questions that people might want to see on a landing page:
* How does the function collection relate to existing function libraries in various programming languages
* What are the target domain and range of the function set, i.e., what is the overall scope of the project. Even if its open ended it needs some meaningful and self-explanaory scheme to categorize and group them
* What are some gee-wow uses. Why should one be involved. How can this be used outside wikipedia etc
3: https://lists.wikimedia.org/hyperkitty/list/abstract-wikiped... — "We encountered a number of issues while deploying, and it was fascinating to fix these live while the community was watching. There are still a
number of high-priority bugs, and we need to fix those before we get to the next step. The current plan is to open the wiki for editing on Tuesday, August 1st 2023, and we’ll update you if that changes."
There are no reasons for public users to contribute; editing is locked to trusted, hand-selected users given temporary permissions.[1] The lack of documentation and purpose are arguably intentional because they're targeting internal uses. A large-scale, alpha-quality solution still looking for any non-Wikimedia Foundation problem to solve, made public mostly because Wikimedia prefers to be and enjoys being messy in public.
https://www.wikifunctions.org/wiki/Z1 is about "Type: Object"
https://www.wikifunctions.org/wiki/Z2 is about "Type: Persistent object"
https://www.wikifunctions.org/wiki/Z10 404
https://www.wikifunctions.org/wiki/Z100 404
https://www.wikifunctions.org/wiki/Z500 is about "Error type: Unspecified error"
https://www.wikifunctions.org/wiki/Z1000 404
https://www.wikifunctions.org/wiki/Z10000 is about "Function: join strings"
I love the idea of having a wiki-based spec for the best implementation and/or algorithm that has a bangin' talk page and I can generally trust for most situations.
Sine the wiki hasn't been opened for editing yet, there is indeed only one function that has visible implementations (which was added for testing purposed): https://www.wikifunctions.org/view/en/Z10000 - all others are built-in and then invisible.
This is I suspect what a Domain Driven Design should be - every compmay should have something like this. Things like "how do we estimate the number of headlamps needed from
supplier A, B and C in the next three months"
Like https://val.town but written in a wiki specific python or javascript? I wish there is an easy way to see the code for each function instead of the "low code" UI.
But I don't think Wikimedia Foundation wants to provide a free-to-all unlimited compute... No idea what the resource limit plans are, etc. But at least now in this early phase, the user rights are very limited, anyway.
> the creation of new development environments or programming languages or paradigms will become easier, as they could simply refer to Wikilambda for a vast library of functions.
... except morbid curiosity compelled me to the end.
I remember being intrigued by this idea. I doubt it would work but it’s interesting to understand why. Seems the main hold up is that each function might have to point to other function as dependencies, so it’s not going to be linear but really a graph. And then you are immediately in the position of I like this code but I am user Log package N, but they use Log package M so I have to copy and edit. . Vs _ and how things are published and versioned is just implementation details.
Wouldn't you end up with 50 "get an URL" functions for different types of concurrency frameworks, different retry strategies, different SSL implementations, etc.?
Has anyone figured out how to input lists? It shows inputs for selecting the type of each element of a list, but when I select a type like "String" the type input field is empty again. When I do not enter anything, but click the "dropdown arrow" right of the field, the field becomes grayed out and empty again. Not sure how to use this.
> Initially, we will support two pre-defined Types for the inputs and outputs of Functions: Strings and Booleans. The creation of new Types will at first be restricted to staff members.
Most interesting functions use other functions. I did not find how they solve using existing functions, avoiding duplication of basic functionality, but also handling how things might break if an underlying function is independently updated. Does anyone know how they solve this, it is an interesting problem?
These look like they are all builtins. I’m really not sure what is meant by “decolonising functions”, it seems to take inspiration from a professor who allowed his class to speak and discuss mathematics in Spanish (admirable!)… but this is a website!
I can’t even tell if there is a documentation area.
That page seems totally reasonable and admirable to me. It’s literally just advocating for including the wide and varied history of algorithm development, in order to encourage readers from many different backgrounds to find ways to connect with the important topic.
>It’s literally just advocating for including the wide and varied history of algorithm development, in order to encourage readers from many different backgrounds to find ways to connect with the important topic.
I'm at a loss of words for what I feel towards respecting (even promoting!) the idea that a piece of knowledge ought to become interesting or valuable if there is ethnic relationship to it. It reeks of supremacist talk to me.
If someone came up to me saying that he got into mathematics because Charles Babbage was a white guy, just like him, I'd think that person doesn't belong in current society. This doesn't change if the person belongs to any minority.
Feigning ignorance? I am explicit in pointing how minorities tend to get a special deal when it comes to supremacist talk. I just don't condone it. I don't believe that glorification based on race is something you can keep to certain races. I am simply not racist about racism.
> I don’t think an encyclopaedia should cater to racist views of its readers over factual information
Uh, nobody thinks this. I'm sensing an straw man argument fast incoming..
> So it seems unreasonable to stretch the truth to diversify or narrow down the number of people you mention
It's entirely unclear where you see the truth being stretched? Factually recognizing important contributions by people from under-represented backgrounds is doing the exact opposite of narrowing the "number of people you mention". It's literally mentioning more people who contributed to a certain effort or field of study.
> Uh, nobody thinks this. I'm sensing an straw man argument fast incoming..
Of course they do. That's what they say:
> The way I understand the program of decolonizing mathematics is to follow two principles:
> first, to recognize the contributions of people with diverse backgrounds, in order to offer more protagonists who can inspire and with whom more people can identify
> second, to provide examples and motivations that are relatable to under-represented backgrounds and identities, in order to reach and be more immediately helpful to more people
They imply that people will more readily identify and congregate with people of their own racial and ethnic background. That may be true, that doesn't make it any less racist.
> It's entirely unclear where you see the truth being stretched? Factually recognizing important contributions by people from under-represented backgrounds is doing the exact opposite of narrowing the "number of people you mention".
If you factually recognize important contributions, you don't have to make any efforts or care about the raised issue.
> It's literally mentioning more people who contributed to a certain effort or field of study.
If you want to write who invented the algorithm and there is one asian invention in 1303 and one by some eueopean in 1803 then leaving out the asian inventor is actively harmful to the encyclopedia as it distorts truth.
This article to me just tries to raise awareness for the fact that our western history of who invented what is often incomplete and sometimes simply wrong.
Historians right now have the unenviable task of considering how the history they work with has been distorted by racism (e.g. by playing down the role of certain people with the "wrong" race and instead attributing things to people with the "right" race).
I'd like an encyclopedia to list all inventors of something even if they are not known in my culture — preferably in my own language as well, but that is a different topic.
> first, to recognize the contributions of people with diverse backgrounds, in order to offer more protagonists who can inspire and with whom more people can identify
second, to provide examples and motivations that are relatable to under-represented backgrounds and identities, in order to reach and be more immediately helpful to more people
Seems pretty reasonable IMO. Feels like pretty mellow and easy actions to take. But the linked post I agree is a bit … condescending? Self congratulating?
Your outrage at this seems to be analogous to outrage of people who think that it is horrible that Unix has a "kill" operation. Basically, you don't understand that "decolonization" is a metaphor for a broader historical perspective, and instead you're trying to interpret it literally and in a bad faith.
> Your outrage at this seems to be analogous to outrage of people who think that it is horrible that Unix has a "kill" operation.
The reaction is more similar to people who ARENT bothered by the use of kill, master, etc. The article about “decolonizing” functions is a shoehorned idealogical venture. A completely unnecessary political aside.
I also wouldnt call it outrage. That just seems like a way to make the point sound unreasonable without addressing its logic. If his reaction is outrage then so yours.
The only ones talking about "decolonization" are on one very extreme side of the political spectrum and trying to inject identity politics into everything.
I don't understand your argument. Where is, aside from the word "decolonization", the author of that document trying to "inject identity politics"? And to what end? (And you certainly seem to be concerned by identity of the people making those claims..)
Take a step back and think about how your statement really sounds. It's like saying that "a group of extremist geeks who wrote Unix is trying to inject violence into everything". It's faux outrage that misses the point.
What "outrage"? Might as well ask why you are going insane with hatred over a simple question. How would that feel? Would you even bother to respond to something like that?
I responded in attempt to explain the viewpoint of the other side, by using an analogy (that can be familiar to people who do computers). There is no "insane hatred" in my response, on the contrary, I was trying to expand the PP's perspective.
PP seemed to be concerned about the word "decolonization" specifically, rather than the actual goal of properly organizing the history, and seemed annoyed by it enough to comment here. I would say that justifies it to be called an "outrage", but it's hard to defend or concede now that it has been flagged. I think were they not outraged, they can simply ignore my comment as irrelevant, and they are also welcome to clarify whatever objections they have with respect to that project.
I know. My point was just that it's a needless escalation (just like replying that to you would have been), since even annoyance isn't outrage.
Either way it's talking about the inner emotions of a person on their behalf - flagged or not, how could someone possibly defend themselves against that? People can talk about their own feelings if they want, but talking about the feelings of others, feelings those other people didn't even express, just doesn't lead anywhere good, yet it's so common on the web nowadays. The wisdom of not reading feelings into text has been lost for a long time now. Let's bring it back I say :)
In short, you can ask people how they feel, but you can't tell them. Certainly not via text in absence of a history of actually knowing that individual person (as opposed to "a category of person you perceive that individual to belong to", which is how this came across to me).
> they are also welcome to clarify whatever objections they have with respect to that project.
Yes, and I can't say I disagree with it being flagged because "is this a joke?" is just needlessly convoluted. Just make your point, state where you disagree with the content etc. instead of asking others to rephrase or confirm that yes, they're serious. To me that's just as annoying as saying "y u mad bro?". But since it's already agreed that that's no good, I didn't reiterate that.
Yeah, and it was misguided and irrelevant all the same. People who actually use Git understand that "master" is a metaphor, just like people who are concerned about historical views being represented understand that "decolonization" is also a metaphor for this due dilligence.
Context is everything. You're not gonna be killed by Unix command, enslaved by Github, and the land you own is not going to be confiscated by people who are writing an encyclopedia.
The difference is that "master" doesn't actually imply the existence of slaves in English, while "decolonization" does literally imply that there is some sort of colonialism that is being undone.
That's irrelevant unless you assume that they use the word "decolonization" in a bad faith. I argue they don't, and so it's a non-issue (people are being offended for no reason).
But IIRC, the first time I encountered the word "master" in computing, it was in the context of serial link data transfer, and there was a "slave".
It's irrelevant that the usage of a word, by the word's very construction, favors the formation of false beliefs, so long as there are good intentions behind it?
The fact that a word can be used in the context of slavery doesn't mean the word always and everywhere carries the taint of slavery. What could possibly limit the reach of such a principle? Can I talk about how I like cotton shirts better than other fabrics, when the mere mention of cotton might bring some people back to an uncomfortable place?
> People who actually use Git understand that "master" is a metaphor
I don’t think thats actually true. I think everyone knew the etymology was not slave owners. Which is the problem - its fighting a manufactured battle. Creating “systemic racism” out of thin air.
Probably, but LLMs seem to gain more understanding from seeing lots of different examples than they do from a few examples of good code so people won't stop scraping stackoverflow.
Well, that one hurts a bit. I think I got the domain name for close to 6 years now. Been paying ever since. Oh i got the hosting as well, been paying for that for 3 years at least.
If only I ever got to finishing it. Though my version looks more like stackoverflow where people can upvote edits of functions.
Don’t sweat it. It appears this wikifunctions is not intended for “mortals” to use. It’s an implementation detail of an upcoming structured data project.
Perhaps if this would have been introduced 20 years ago it may have gotten some traction. ChatGPT / AI seems like the ideal spot to request functions as it can also tweak - though honestly it isn't as good as I'd like it to be (yet).
I keep the cynicism inside me in check usually, but these days finding it harder to do. So people contribute to this and then what? Google/MS/OpenAI etc train models on the data and try to sell it back to us?
No, the concept of Wikifunctions and Abstract Wikipedia has been brewing for some years. It's basically an extension/complement to Wikidata and the efforts to collect as much information as possible on Wikipedia in a language-agnostic way.
Opening some of the pages at random, like
https://www.wikifunctions.org/view/en/Z828
https://www.wikifunctions.org/view/en/Z110
There's a "try this function" section, which I couldn't get to take any sort of input on a few tries. It always ended up with a field that said "no results found" on typing things in it.
There's a "current object" section, displaying some kind of alien script. Like, what is this? Is it supposed to tell me something?
Clearly I am not part of the target audience here. But who is?