1 00:00:00,180 --> 00:00:03,660 What is Wikifunctions? Wikifunctions is a new project

2 00:00:03,660 --> 00:00:07,320 by the Wikimedia Foundation, the caretaker of Wikipedia,

3 00:00:07,320 --> 00:00:11,700 Wikidata and other projects. The vision behind Wikimedia is

4 00:00:11,700 --> 00:00:15,900 a world where everyone can freely share in the sum of all knowledge.

5 00:00:16,920 --> 00:00:23,700 Wikifunctions is the first new Wikimedia project since 2012. It is fully multilingual

6 00:00:23,700 --> 00:00:29,100 both in terms of spoken languages but also in terms of programming languages. It is

7 00:00:29,100 --> 00:00:34,980 a wiki of functions. But what does that mean? What is a function? Mathematically,

8 00:00:34,980 --> 00:00:39,900 a function is a mapping from elements of one set of elements to another set. Now,

9 00:00:39,900 --> 00:00:45,060 this is technically correct but it usually doesn't explain much. Here's a different explanation:

10 00:00:45,600 --> 00:00:53,400 a function is something that takes an input and transforms it predictably into an output,

11 00:00:53,400 --> 00:01:00,180 following a specific recipe. It is some form of process, or calculation, or transformation.

12 00:01:01,140 --> 00:01:06,780 These calculations can be on numbers, but don't have to be. They can be on coordinates, colors,

13 00:01:06,780 --> 00:01:12,180 ingredients. They can turn two numbers into their sum, two or more colors into their mixture,

14 00:01:12,180 --> 00:01:18,720 or a list of ingredients into some new food. Functions don't just transform an input to an

15 00:01:18,720 --> 00:01:25,140 output: they answer questions. If a function can transform red and blue into their mixture,

16 00:01:25,140 --> 00:01:30,600 then it also answers the question "What do I get if I mix red and blue?" And if you have something

17 00:01:30,600 --> 00:01:36,900 that answers questions, that's knowledge. Functions answer questions. Functions are

18 00:01:36,900 --> 00:01:42,540 knowledge. And the big tech companies know this. They have been using functions to answer your

19 00:01:42,540 --> 00:01:49,020 questions for a while. I can ask Siri "How many teaspoons are in two tablespoons?" Siri will use a

20 00:01:49,020 --> 00:01:55,020 function to calculate the answer. I can ask Bing: "How tall is the Pyramid of the Sun?" I can ask

21 00:01:55,020 --> 00:02:00,360 DuckDuckGo "How far is the Pyramid of the Sun from Mexico City?" Here is one of my favorites: if you

22 00:02:00,360 --> 00:02:04,740 go to Google and ask for the volume of a pyramid you get this beautiful, immersive, interactive

23 00:02:04,740 --> 00:02:10,200 experience. It shows the relevant inputs, it shows the diagram, it shows the formula, it substitutes

24 00:02:10,200 --> 00:02:14,940 the inputs I enter and calculates the results. I give the height of 65 meters we just looked

25 00:02:14,940 --> 00:02:20,220 up and it will tell us the volume of the Pyramid of the Sun: about 1 million cubic meters. This is

26 00:02:20,220 --> 00:02:25,320 beautiful. but you only have these wonderful experiences for the functions that people at

27 00:02:25,320 --> 00:02:31,140 a tech companies deemed to be important enough. As soon as we get away from those experiences, like trying to

28 00:02:31,140 --> 00:02:35,820 calculate the mass of a pyramid, we're out of luck and instead we get a normal search experience.

29 00:02:36,840 --> 00:02:41,400 There's no way to create a new function, to share that function with the world,

30 00:02:41,400 --> 00:02:48,720 to answer more types of questions, to contribute to the world's knowledge on the topics we care

31 00:02:48,720 --> 00:02:57,480 about. Functions are knowledge. Knowledge is power. In fact, functions are a superpower.

32 00:02:58,140 --> 00:03:04,680 Because, unlike a Wikipedia article they don't just have the answers that are in the text, no,

33 00:03:04,680 --> 00:03:13,620 a function can be used to answer a question no one in the world has ever asked before. And you

34 00:03:13,620 --> 00:03:19,980 know that they will do so reliably, if you trust a function. Which is why it is important that the

35 00:03:19,980 --> 00:03:25,260 functions are in the open, that the functions can be edited by everyone, can be checked by everyone.

36 00:03:26,280 --> 00:03:33,300 Imagine that: you can ask a question that no one, that no one ever asked and you can

37 00:03:33,300 --> 00:03:40,140 be confident to get the correct answer for that question. That, that is truly amazing.

38 00:03:42,420 --> 00:03:49,200 And I really think that this is a superpower. A superpower we don't want to be granted and taken

39 00:03:49,200 --> 00:03:56,100 away by big tech companies. This is why we are building a library of functions that any one of

40 00:03:56,100 --> 00:04:04,260 us can edit, that any one of us can contribute to, that any one of us can use: Wikifunctions.

41 00:04:05,520 --> 00:04:08,940 These following screenshots are from the beta version of Wikifunctions.

42 00:04:09,480 --> 00:04:15,060 Wikifunctions is a wiki, just like Wikipedia is. You can join and edit.

43 00:04:15,060 --> 00:04:20,460 On Wikifunctions, every function has its own page. We can see here links to many

44 00:04:20,460 --> 00:04:25,680 different functions. For example, this is a pretty simple function: addition. Addition

45 00:04:25,680 --> 00:04:30,960 takes two positive integers and returns one, for example, it takes 5 and 2 and returns 7.

46 00:04:31,500 --> 00:04:37,020 Every function can have several implementations. This for example is the implementation of addition

47 00:04:37,020 --> 00:04:44,280 in Python. This in JavaScript. Wikifunctions aims to support many different programming languages.

48 00:04:44,880 --> 00:04:51,420 It also allows us to implement a function by composing existing simpler functions together.

49 00:04:52,560 --> 00:04:58,680 Addition for example can be pieced together by functions that add one, take away one

50 00:04:58,680 --> 00:05:04,980 repeatedly. And because each of these functions have their own pages in Wikifunctions, each with

51 00:05:04,980 --> 00:05:11,040 the names in different languages, we can read and even write implementations and functions in

52 00:05:11,040 --> 00:05:18,900 other languages, such as German in this example. For many people this will be the first time they

53 00:05:18,900 --> 00:05:24,840 can read and write functions in their own native language without having to learn English first.

54 00:05:25,500 --> 00:05:28,740 And it's the first time they can create and share functions they care about:

55 00:05:28,740 --> 00:05:33,180 functions about their calendars, their units of measurements, their traditions and cultures.

56 00:05:33,180 --> 00:05:40,200 To summarize: we aim to allow for people without English language skills to use functions,

57 00:05:40,200 --> 00:05:46,680 to create functions, to implement functions. We think that there is a large pool of potential

58 00:05:46,680 --> 00:05:52,380 contributors who have all the skills necessary to contribute functions, but don't speak English.

59 00:05:53,220 --> 00:05:58,620 We hope to unlock that potential. We hope to grow a new community,

60 00:05:58,620 --> 00:06:03,240 we hope to bring in new contributors by supporting a new form of knowledge.

61 00:06:03,780 --> 00:06:08,040 We hope that Wikifunctions will lead to the creation of a comprehensive library

62 00:06:08,040 --> 00:06:15,720 of natural language generation functions for 300 and more natural languages. This will be a major

63 00:06:15,720 --> 00:06:21,000 stepping stone towards something we call Abstract Wikipedia, of which we will talk at another time.

64 00:06:22,320 --> 00:06:28,920 And we really want for Wikifunctions to democratize access to functions. Today,

65 00:06:28,920 --> 00:06:34,740 programmers have easy access to all kinds of functions, but others only to whatever

66 00:06:34,740 --> 00:06:41,700 big tech companies allow us to have. With Wikifunctions we want to democratize the usage

67 00:06:41,700 --> 00:06:48,000 and also the creation and sharing of functions, to enable many more questions to be answered,

68 00:06:48,000 --> 00:06:54,900 to bring us closer to a world where everyone can freely share in the sum of all knowledge.

69 00:06:55,740 --> 00:07:02,220 Join us on this path. Join us on Wikifunctions, now available at wikifunctions.org