 long tail of web applications. So you may have heard the concept of long tail, which was made popular by Chris Anderson. And in particular, he mentioned it in relations to bookstores. So if you look at the red part of the graph, so if you're talking about bookstores, for example, that would be the traditional bookstores, the physical ones, the brick and motor ones. And horizontally, you would see the number of books available on those bookstores. So you have only a few number of books there. But they are bestsellers, so you sell a lot of them. And what Amazon did, for example, is that they were able to put a lot of books online, but sell only a few number of those, as low as one book, for example. But if you compute the surface of the yellow part or the red part, the yellow part is actually quite large and can be larger than the red one. So for applications, it's a bit the same. We have traditional ways of developing software, and that's on the red part. So you're developing a few applications globally, because it costs a lot. You need to gather a team of developers, and it takes time to do so. That's why the application costs can be quite high. On the other hand, every day when we go to work, we have a lot of very small needs. You're taking some information from one place, taking it from another one, merging them together, displaying them in a certain way, or you would like to do something very specific to your needs. And you can't find an application for that, because it's very specific for your need. And if you had to gather a team of developers, then that would just take too long, or too costly, and you wouldn't do it. So this is what we wanted to address. And this was typically addressed with Excel, for example, which is a good tool for creating some small things with macros, but not so great for the web. So xWiki is one of the solutions to try to address this. So what is xWiki? So it's a wiki. You probably all know what a wiki is. So it's a place where you can edit content very quickly at content, et cetera. So this is xWiki is an advanced wiki. But that's not really the focus there. It's also a run time web development platform. So this is just a quick architecture. So very quickly, it runs on the Java server container. And it provides a lot of features, a lot of APIs, and UIs in various domains, annotation, dashboard, blog, whatever. There are over 700 extensions. But what's important is the part at the top, is that you are actually able, inside wiki pages, to put some scripts and call those APIs, or call any of the APIs that exist, to create your own application. So this is what I want to demonstrate quickly in a demo. So if you install xWiki, this is what you will get on the first run. So this is a page, a typical page. You can edit the page. So this is a normal wiki. You can change it in with a wig or wiki. But the important part is, here on the left, in more application, you can install new application, but you can also create your own. So imagine that I'm somewhere in my wiki. And I'm using the wiki for various information. And suddenly, I come in in the morning, and I would like to create a holiday request application for people who are working with this wiki, for example. So I can click Create Your Own here. And I enter an application, call application within minutes, allowing me to create very quickly a small application. So let's call that holiday application. So this wizard is actually going to create wiki pages making up this application. So the second step is creating the structure for my holiday request. So I need a user. That would be the employee, for example, requesting the holiday. We need a date, for example, a start date. And then, oops, sorry, I hit Enter. What we will need also a static list, for example, for defining the different options like a pending application, a refused, and accepted. So I'm just going to remove the default being proposed here. OK, done. And I can add a number of days, for example. OK, that's good enough for now. Let me move to the next step. So next step is I can choose an icon for my application. Let's take this one. And I can say where I want to create those new holiday requests in the wiki. I'm not going to enforce that right now. And the last step is this wizard is going to generate a live table of the different fields for me to view the entries. So I can choose to display the fields that I created in this table, for example. And I'm going to remove the default once. And that's it. So here, this is the application now. If you look on the left at the top, you see there's a new application being available in the wiki and I have a table and empty one right now. But I can add a new entry. So let's say Vincent1. And you see, instead of adding unstructured data, I'm able to enter structured data corresponding to the model that I've created. So I don't have a lot of employees in my wiki. So I've got administrator. Let's say it's starting tomorrow. And let's say that it's going to be for, I don't know, five days. I can say pending if I want here. I didn't put a default value. OK, so this is creating a page, rendering it. And if I go back to my live table, I have now one entry that can be filtered, et cetera. So you see, in a few minutes, I've been able to create a data structure in the wiki to make this very small application. So I want to go back to the slides now. So that's a very quick application. What I've demonstrated here was the ability to create structure in wiki pages. But we can do a lot more, of course. You can have scripting in wiki pages to do any actions you want based on the data query, the data that you've created. For example, send an email or do whatever you want. You can inject CSS, JavaScript. You can install or remove existing extensions. And those can bring new APIs or new UI in your wiki. And of course, you can modify the scheme, the themes, and various parts of the UI, as you wish. So if we go back a bit, step back a bit. If you take the traditional ways of creating an application, so you use a general purpose language, for example, such as C or Java or Python or whatever, so you have building blocks, and you build them to build a runtime, something that executes. That's the traditional way. What we're doing here is we're taking a runtime that exists. That's the xwiki runtime. And we're able to actually modify as much as we want from it. So remove pieces, add pieces, create your own pieces to morph it into exactly the application you want it to be. That's the capability of xwiki. And that's what makes it a web application, web development application platform. So just quickly to show you here, this is an example. You don't need to read those. It's very small. But this is an example of what people have done with xwiki. This is coming from the xwiki.org website. Just wanted to show you because they're all very different. They're all using these different capabilities to actually do something very widely different. And using xwiki really as a web application platform for all their needs. So in conclusion, what we see here is that we have a way of developing application in an iterative way. Because everything we do is in wiki pages. And wiki pages are versioned. So you can progressively make modification in places in the wiki. Go back, do that collaboratively with several people, compare what they've done with diffs, et cetera. It's continuous delivery, of course, because as soon as you make modification in the wiki page and you save the page, then the action executes. The change executes immediately and you get to see the result. If you don't like it, you can roll back or edit to make more modification. It's nice for working collaboratively together with several people on the same application. And it works from day one, yes, because of course the runtime is there. You're able to have the runtime. Sometimes when you're starting from scratch, it needs quite a while to actually get something that you can show and you can really work on because you need to put together all the bit and pieces. So it's open source and community-based, too. Thank you very much. We leave the time for questions now. Thank you. So the question is, I said that we have APIs. Can we use those APIs, for example, to query the data that were entered in the, for example, the holiday request application? And yes, so we have a lot of APIs. One of them is a query API. And we have a query language. We call it XWQL, Xwiki query language. It's just a superset of JPQL that is standard in the Java world. And you're able to say, find me all the pages that have metadata of this holiday type and with additional criteria for filtering if I want. And this gives me a list. And then I can iterate over this list. In various languages, I mentioned some languages here. You can code this in Velocity, in Groovy, in Python, in what else? Groovy, and there are a few more, actually. In JavaScript. So you can use the language that you want, a scripting language that you prefer. Iterate over this list so you get the data. And you can do whatever you want with the data. You can present them the way you want. You can do action on them and everything you want. More questions? Yes, here? This one. So the question is, do I need to care about safety issues? So the question is, should I be concerned about XWiki safety because there are a lot of parts that exist already. We have a security model that exists based on permissions. So you've got permissions at various level, at the level of the wiki itself, the full level. So who is able to edit content? Who is able to delete pages, create pages, et cetera? Permission for writing scripts in pages. So you can do that at the global level. You can do it at the level of each page also, or each subset of pages, the page and the children. So at all levels, you have that. So you can set it if you're concerned about that and you want only to give access to some people. So you can do it at the top level, for example. And that will cover the whole thing. Or you can decide to disallow, for example, at the whole level, but allow at a very given level so you want to give access for some subparts, for example, in the wiki. So all those blocks are built under this constraint of this security model. Then it's up to you whether you want to use this security model or not. But by default, it's built in, and it's there, and it is used. Yeah, another question, maybe? I don't see up there. Yeah, there is a question there, I think. So the question is, can we also work with ontologies and build semantic wiki? I'm not very familiar with this. I know there was a research project in the past that was doing that, what it was doing. I don't know if that answers your question. It was trying to take free form content in wiki pages and derive some structure from it automatically. So maybe that's a bit different. It was like a semantic understanding of content. Well, that's OK. So we have the structure in the wiki. Then for exporting that, it's a matter of, for example, creating a page. So we have that, for example, if you want to generate RSS, for example. In a wiki page, we have some scripts. And we do the queries, as it was mentioned before, to gather the data. And then we just put the format that we want in output. So you can generate RDF or anything there. And then you just need to provide the URL to something external or anywhere. And this will generate the RDF. How much time do we have? One more question. And that's the last one. No? OK, so thank you very much.