 Okay, so let us continue. My name is Matt Schultz and I'm working on the Office Collaboration. I'm the chair of the Advanced Documenting Collaborations Committee of WASIS. There was a break mentioned. As in progress, we need the invitations. There are WASIS requests to invitations. So this is the start of my work for the last six years. So let me try to guide you through. First of all, a little provocative question. In the 50 years, do you believe that the leader of WASIS is still your favorite or editor? Any takers? I read for a while about it. How can we answer this? It all comes down to questions you cannot say yes or no. But in general, it depends on if the leader of WASIS is ready to fulfill the features in which it's invoked in the 50 years, right? So 1976 VI was invoked, right? Today, maybe some people are using it, but it's getting down to none. So to me, collaboration is the most important action that is upcoming, right? Because we live in a connected world and everybody at least, I believe, most of us got two computers, a smartphone and a laptop. So we are collaborating even with ourselves and we have to send the documents that we work with. And that's becoming a problem because most of the software that's from the 80s, we're living from a flawless, and we load the same from calculus. So that's switch or parallel. So let me define real-time connection. I looked it up in the 90s, and in real-time, editor has two modes, which is quite interesting because, mostly, one of those modes is forgotten. It's written in general. These two modes can and should be supported. And the two modes are, one is like, we all have the mind when we come out with written modes like Google Docs or Calabora online, where we have two courses and we can work at the same time. But the second mode, and most people got very important, is where we can copy, we work on a copy, and we can offline like software developers. And after a while, maybe a weekend, maybe a month, we send back, we merge them. And basically both of them are quite similar. And the main difference here is that by both of them, all the copies have to be similar at the end. So Google, all colorations. The retail mode, for confidence purposes, provides extra fixes on virtual effects. And think about, if I'm working on a cell, and you did it in the table, it's a virtual thing, right? And so there's no sign coming out, and the retail mode says, oh, we have to fix this merge thing. No, it should be very difficult, and you can, the curves are flying, and people will never have to deal with it. That's not a problem, that's wonderful. But the not-be-able mode is where you have to explicitly resolve, you know, for software developers, resolve all the key effects, mathematically. So the reading time mode is very nice if you're working with a bunch of people, colleagues, your trustee. And the other one is, please don't trust the other one. You have to have control of anything, like legal departments. So something like this example is retail models, what comes first to mind. The second one is faster forgotten, and I believe that most of the money is there, right? And money drives everything. So we have to focus and think about the second one in support of it. So how does real time integration work? And in general, it's funny, one of the very few things that all the developer worked on three or four web offices, the first thing that all developers agree on is that everyone said, oh, we cannot send documents, because we work in a very rich document, and we send this document for every keystroke that we do, it loads all the time, it doesn't get it. So it's still, we're doing this all the time now, we're sending documents by email. It's like software repositories for software developers, they're slightly different than developers. Like software developers sending this source code repository, that's it, right? And telling, oh, by the way, my changes in my work there were to the last month. It's very hard because you have to merge it back into one document. So how they do it? They dispatch changes. This is, you don't really know how to conduct to it, right? You know how individualism, as far as I know, if a team is being brought up by a group or something, they don't do the source. But I realize that it works best if you don't send syntax or text, but send it semantics, like with phone, your colleague can say, oh, by the way, the third paragraph has changed this character, right? That's how we're dealing with that. So the most problem is, if you download document back, the first question you're asking is, why have it changed? And there's currently no way in time, in a way, in an initial way, so many applications have been implemented because all we have implemented is a little bit of a specialized part of five or four months, like the audience standard, and HTML, and top x, and everything. It's only traffic. It's only standardizing the file and state. There's no way in explaining it. And all people are doing is the real line, basically. They're totally agnostic to cement, which doesn't work so well in audience documents because they can be one line, multiple lines, and the x's are different, but it's logically the same, so we have to do it differently. So how can we solve this problem, and how does the future look like? And you can see we have multiple users using different body applications, and that is actually body of changes. And body of changes could be like, oh, by the way, I entered a new fourth paragraph. And the other one said, oh, by the way, I made the second paragraph blue. And so at the same time, the third one gets multiple commands. And this is how it should like, and this is how we should discover the stuff. So is it possible that this becomes a standard? Well, when you think about it, it's already an effective standard because you might be surprised that we find in every office application the same logic of things like a table, column, cell, image, and hyperlinks, and you can insert, delete them, and modify them. So the user changes to already exist. All the specifications are just unspecified because it's work. And so all we have to do is now to implement it. And how about a prototype? Yeah, that would be cool. And by the way, we have one, because the project finds also be a last feature to implement this green box. I could call it a white box, but okay, this one's green. But what you're doing is you give it a text document, obviously, and it's being sequenced, it's called a sequence, it's being serialized to a sequence of user, like the user would have changed it from the top to get it on at. So why are we giving it? Because then you can send these documents as kids out of Jason to the vet office, and the vet office will not know if it's by a different user, by different vet office. Or if it's by a document form, the vet office does not know anything about the data. It only knows changes, and every user changes, we track as well, and it's being dispatched to the other things. This slide, for instance, what they've changed over the few years, is still part being built. So, but it's available, but yet it's just a model, it's a backend model. So how about a real prototype that you can use as an end user? I tried, but let me give you an example. So let's say we have a VIN, not VI, it's a VIN, and it's an only application. Well, the last time I checked, it wasn't a code application. But take a moment, what about if you met all the parts to this VIN that changes that it's capable of, and then all the two things that are capable of, obvious texts, but you can emulate a paragraph by line. So in the end, you can edit the text, and merge it back to a really document. So like, oh, I've got here, I call it a feature bridge, right? It's mapping. It's doing the mapping between the features that VIN doesn't know. I met something in position one, one, and they got it on back at three, no more. Then because, and here it's going, this is how the document might look like, and this is semantic tree. At position one, it's a table. At position two, it's the image. And at three, there's this paragraph. So while a W, because VIN doesn't see anything, does not know anything about the table, does not know anything about the image, it would think that the W is at position one, one, while the office knows it's three, one, three, one. So what we are doing, we are putting this unknown feature back in and moving it out during the collaboration, okay? We can do it more efficiently, but that's the basic rule. So knowing this can be said, there's something more exciting than VIN. I tried, and I thought, how about CKL5? CKL5 is another application item, but they are switching from 4 to 5 to changes. They thought, oh, great idea. CK Source, the company, they're doing open source, they're living in Warsaw, Warsaw. And I thought I'm living in Warsaw, and I take a bus, go there, visit them, and discuss, maybe get a prototype. Well, it was very interesting, a lot, but they had a lot of time to provide me the functionality at the moment to get their JSON changes, and I would have met it to this thought. It's not running yet, but maybe we can come out to do something that has been running, and could enable an application for them, not yet, or they have become an only application. So, what have you learned so far? Let me summarize here a little recap. So, it's best to not dispatch documents from source-oriented boundaries, but dispatch changes. They are changed when necessary, because you want to have a change in a position to know where to put it. And it's much better than otherwise you have to compare the documents and find out what has been changed. I don't know. Now, talk about change tracking. I've simply skipped a bit, because the general thing is broken, okay, I'll tell you what it was. For instance, legally partners in Great Britain are not allowed to lose change tracking, because the value you should contract, they make a claim to change, and the other, simply reject it, and when it's getting back, we get no notification that something has been rejected. Right? So, change tracking is sometimes something like a dictatorship, like the Demos model, right, where you can say, oh, I don't want to take it, I'm taking it. But it's not for peers, okay? It's something, this concept was broken. It was an out of thought for some customers, but it's not working for legal partners with the money. So, and the last thing is, you can use it also for different feature sets. That's sort of, which are the locations with different feature sets, right? For cooperating. Currently, you only load everything and save everything. What you don't know is something wrong. We call it the filter, but it's, yeah, you're losing data. So, they're more, yeah, they're more benefits, like, it's just, the Demos is going, it's getting far faster when I add a very huge file, and I make, oh, I should save it. Currently, I save all the file, it takes quite long, right? But if you only save, and you just add it, then it's far, far easier, far, far faster, okay? So, and that's my favorite example. It's if I'm a favorite author. I said, well, I put my book, my new book on the server, read on it, right? Then, you can read it, you can see it, and you see, oh, there's a title. I want to suggest that there's a change here. Instead of sending me the full document back where I have no idea if you have maybe put some jokes into my new book that I'm not aware of, you can send me all of the changes and I can look at it and say, oh, that's true. It's like, best I have some footing, and it shows me now my, like, change training, once it's been added and deleted, and you can be quite confidential that there's no loss of data for writing data. And that's the same thing that the evening conference wants with their very large contracts are being changed. And another reason for this example I love so much is you better use positions like one, two, three, like I did. No IDs, because otherwise, I had to put in this regulatory document an ever-possible thing that can be pointed out, 90, that would blow up this document by enlarge. So, by convention configuration just counting these logical pieces in the document, you say size and you'll be far flexible. And last thing, the last thing is, when you do this pointing, you suddenly have a runtime API. You know, ODIF applications do not have a runtime API. And when you can do lots of what you like, and Microsoft, Microsoft, LibreOffice, Microsoft, all around the LibreOffice, they're not, like, JavaScript running everywhere. Why is it possible to pass for JavaScript? Because there's a DOM API in the document, you DOM API, there is a runtime API. So, suddenly we have something like this, and what would really benefit? What is such a runtime API good to know? Just look at the browsers, and see how powerful JavaScript can become. For instance, we could have this as a test. I may use the Metal Trust Internet app, but you open a document and it scales up suddenly to the point of support, like this browser had like 5% of this success, so the test is within the document you're calling, right? It's genius. And why is it possible? Because they have internal or scripts. Another thing that's quite similar is, canIuse.com is a page where you can look, it may have used this feature already in a certain application, and you can compare these features existing. The nice thing is currently we're onboarding safely and look in the document, obviously it's still there in the feature, but it changes the ability to load, change, and then see if it's there, right? You're much more powerful. Think about it. Now, one of these applications says, any only application is an only application that can load and save valid only app. Well, it, by the way, is valid only app because it just simply slacks it, saves it the same thing every time. Nobody can prove it. But what's changing is going to be different. And I wish that, like here, it's also, I can compare office code applications by one of the features there, one of the supporting, right? And it's not transparent at the moment. There are no features there because we can't test them and they're all individual features across applications that we compare. And the nice thing is you cannot only test the features of the applications, but you can also test the features of the documents of the customer, right? Because you can run them in this green box, remember, where a sequence says to the features that the user write it down, and then you can take a look and make a statistic and just be used in one amount. And by this you can say, oh, this feature says if only you can use LibreOffice, or you can use some more, whatever. Okay, and last thing, maybe one of the most powerful things was changing your history, right? Because you can go back and forth for features and you have kids of all, because you don't know what the line makes this going on, but you have semantics, which is wonderful, because the merge is quite easy. And because there are some people who don't like that you understand why merge is easy, what's variable works. So I really would like to explain and bring the basic techniques. So, one way, the document was once quite unique. But nowadays, if you, if the document includes some changes, there are different ways to create a document, like the first one to delay the position model is simplified, then it will be then a scene resulting into a scene. But the second document can be created where you start with a scene, then it's only when I forgot the beat, I insert it in front, okay? But then I forgot the A. And suddenly, I have a totally different document sequence, but it results into the same document. So it seems that both of these sequences are equal. So how do you transform one document into the other sequence, okay? So, let's start with the scene. There's an ad scene. There's an ad in the beginning, and there's an ad. Think about it, it's just like a stack, like you write a document. That's the timing, that's the first operation, that's the last, right? And it seems like you have to switch them, right? So let's say the basic thing that we can do is switch to operations. And if we switch to operations, what are we changing as a stack? This is the timing order. If we switch to the timing order, it's like it's a time travel. Think about the scene. If the scene is inserted after the beam, and suddenly it's behind the scene and it's in that position afterwards because something hasn't been inserted before, right? So this is called by operations information. It was in Google Wave, actually, something, but there are different ways of dealing with it. It's quite complicated, but for this exam, you'll see that all you need is to change the position, right? Because when it's going down, suddenly the A comes towards, and you can read all about the beam. Ah, by the way, we have everything. It's like another software. But remember, you change the timing order of this, and you can order the sequence. And the only thing that you have to realize is if I change the position, there's something inserted before. So what happens now? If you say, I want to delete, I want to take out one of these changes. I don't want the beam any longer. What can we do, right? Can we, oh, what's the problem? Just delete the beam. No, if we do this, if we just remove the beam, then suddenly there's a gap. And you realize, by the former thing here with the 1.1, that even if you add one after the other, the earlier you think about becoming the same. It's not like a blockchain directly, or just a pledge, but you might even think about it, that they're quite, they're coming next. It's dependent on the full state of the previous. All right? So let's sort it back again. And how do we remove it? Well, when you think about like a cart game, you put one change like a cart. You can say, you're only allowed to remove the cart that is top post, right? Because this top cart is not influenced by any other. Anything, any cart below, any change below, is influenced by the ones that are earlier. Sorry, that are, yeah, that are earlier, but you might destroy the influence of the coming next. Okay, that's good. Sorry. Okay, so what are you doing? Only delete the top cart, meaning you're only allowed to remove the latest, the top change. How we do it? Again, we simply, wait a minute, wrong thing, we move it on top. And then we will, here we move it, and here we said, okay, I want to have a system like a blockchain, not change what we delete it ever. So what you can do is simply put in the delete command, and then this is like adding with zero. Yes. We, for every application, sorry, for every operation to change, there's inverse operation neglected there, okay? So, this is null, and this results onto the document, okay? I'm just good? It's, it's not complicated. I mean, it's, it's, it's strange a little bit for the first thing. It's the same thing, but like in SQL, if you have physics, you know this three-handed rule, make a very simple example, and go for it like A, C, C, B, 1, and a, and a, and a, and a, and a piece of paper, and it's, it's getting out very simple. So, the miracle of a version. So now we have a version, okay? We have user aid, going on a weekend, sailing on the ocean, with no life at all, and sort of writing how to position one. And we have user aid going in the forest, no life at all, writing at once, in positionable space. And the server is empty. And the document. They're starting with an empty document, right? It's simple. It's very similar in process to white kids, because both are working on branches, right? They have their own, every change is like committed, and they're stacking it up, and sooner or later, they want to sync with the server. It works for the HTTP as well. It's easy to understand with, with, it's similar like Git, it's a G-Supply sync, it can be all completely, but like GitHub, there's a simple version, right? You can use the HTTP instead, it's a server version. So, Blue is the lucky one, comes to the office, and says, ah, nobody has pushed before. I pushed my change to the server. Great. Easy. I love those things. So easy. The server now, the document calls out. Now, later, B comes to the office, and says, ah, I wanna push my change to the server. Guess what? Of course, ah, push. Oh no. Somebody has pushed something in between. So what have we to do? Please, like, yeah, you have to pull first, right? So when you pull, you take the server on top, but that's not totally correct because, as I said, rewrite, later, later, later, and this change was earlier, okay? So you have to move up this change earlier. But if we do so, remember, we've influenced the position, and as we've found this, it pushes to the center. And now, I'm allowed to push to the server, which I'm doing now, and ta-da, we have a color vote, okay? And now, the wonderful thing, while in software, you've got to merge everything almost. Here, you got, you realize it, merge everything. First off, like, oh, he's working on his cell, he has deleted the table, just move this change on a slide, right? And they should deal with it later on. Contact these guys. But the merge of the server is very easy, just by changing the position. It's like the shell, hey, which might change, which might all, right? You're working on a paragraph, and it might be moving in document, but this OTE, operational information, keep your track of it. So you might answer. Yes, by minutes. Okay. I have a question. Go ahead. Here, I'm asking the user D, which is first. That's exactly the set. You have no idea. It depends. They can be both hallowed, it depends who pushed first, okay? To me, this is a potential version of me, because two people, right, it's in this thing, they have the same position, right? You don't know. You have no semantics, no job, only this thing. I guess I have eight. Toss number, I haven't talked too much. Anyway. So, um, so, another very important thing here is, and get unit hashed, right? How do you do this in, um, with the office, which is, uh, sometimes one line, sometimes, the multiple lines, and it's not even changing. So the hash will break all the time, but what you should do instead is, you know this semantic model, this abstraction hash, this semantic model. And by this, finding the side effect, most of the doc, X files, and OTE files, which still is the same document as a different file forward, have the same symmetry. So, you realize, these are symmetric, the same thing, okay? So, this is very, very important, um, to get this, uh, noise out of control. So, the last thing is, how do you start on the core of the future, the new office, because the new office is on the 18th, and it's very hard to embrace something, the concept that a person did not by design involved in the 18th. It was a minimal viral product. So, the idea is to have, for instance, a signed document that's sent from the office to the office, and in the signed document, you have to know that, not the Z in this line, there's no way to document the Z in the XML file, but each XML file is being signed. So, when you change now something in the document, it's being written in the XML, and you break the seal, okay? The seal sign, okay, here's the signature, okay, but what you can do is, you can now, the changes, put the changes in the sign, like, you get a contract in the sign, and you send it away again, I got a little suggestion here, I divide it into something different, and you write something, and the changes you're doing are just signed as well, as changes, the sign of the document within the Z, a new file, and the funny thing is, the other side will win with it, but we have to do something else on that, and you can send it back, that's the usual P form of the document, right? And, it can be traced now, fully, what was the way, yeah, who has written what, what time, okay, and that's kind of going on, so on, and that's one full, easy, reachable step for a few of us, because you don't have to re-comporation, you don't have to, you don't have to erase everything in the first line, and it's a, and a prosecution that you can sell in the first line, so, and it's a cool, why don't we have it already? The problem is, I go here, let's talk, talk to Foster, the changes are based on the audio effects in that, which are complex, but to take a look at the specification, the grammar, sorry, the grammar is, I think you can't see it right, but more than 18,000 lines, okay, and there are about 600 effects in the elements, and 1,000, 300,000 attributes, with together form, elements like electrons, sorry, atoms, elements like atoms, and the attributes of the electrons, and these are, they are making this, the feature set, like a table. So, it's very difficult to read this, and the idea that I thought was, for example, the table, load this all, not in a text-based file, but in a graph database, visualize it, this is all in the table, table document, with looks like a star picture, the table document with its children, I think a little bit in, these are attributes, red, and this is the simplified to this one, and not very short, why are we doing this? Because it's easier to prove something in a graph database, like, can the paragraph be nested, or show me all the places in the document where a table can exist, and you can, instead of looking to this very huge file, you write a query, that you can share with others, and you can, you can nail it down once and for all. And the other thing that's very nice, is, I want to have, I used to run up to an additional information of changes to generate source code, right, because when we think about it, it's like, painting by numbers, okay, if you're thinking, you can start over again, and then you should generate as much as possible the discourse in front of you. And my wish is, basically, that in 50 years that the collaboration has become as ubiquitous as text features. Well, yeah, that's, basically all, I'm currently working on this kind of source collaboration for electric invoices, and I would really love to write this idea, and finally, I can tell, I'm not sure what, or if LibreOffice is still a problem for 50 years, but I do know that this cloud features it. Okay, thank you for listening.