 Okay, yes. Hi, I'm Sartor. I'm talking about integral office-office collaboration. By the way, I had a similar talk last year, which I finished after the talk. So there are about 80 slides, very much in detail about Sturama. I put this later on in the references. So you might have read it even much better in detail. What I'm talking about is what bothered me about 20 years ago. I worked for some milestone, started in 1999 on a VEP office, and we failed with a .com ball, and we started again, and we failed again, all the distance does all. And the thing that we did is, and I must say, as a server company, we transformed the only F document on the server and sent it to a browser's HTML. So this is fine if you have strong servers on the small mobile, weak mobile, but it works for editing, but it really sucks if you come together and try to work on a single document because you never know what the other has changed in HTML. It's very hard to find out afterwards. So at that point, I would find out that we needed a better collaboration in the sense that even a browser office can work with a Libre office, and that's what we're talking about. I think I have a solution, unfortunately, I'm not sure if it's possible, but let's simply start. First of all, let's agree on what we're talking about. And from what I do, or what I discuss with other people, when people talk about collaboration, they have different things in mind. Some people are just using change tracking. Some other people are using, let's say, Cobra Online or Google Docs, and some other work on software, right? So we can put it in two parts, I think. One thing is the real-time collaboration, the real-time mode. It's in the Viki. The link is coming. But the real-time mode is they're moving across at the same time, and you see the others. You cannot go offline, it's usually not offline, so like Cobra Online and like, usually, Google Docs. The benefit of this is they are not virtual. And the other thing is the non-real mode, where you can't go with your, usually it's on its own. But you go on the weekend, you work on the weekend, you work on the train, you go offline, and later on you need to merge somehow. And you have to pull from the other server and merge with that respect. So that's the non-return of it. Let's see. So, as I said, they're separated like, what I said, in return, and the server's version constant is going to need that sort of. But I think the non-return mode has many more approaches like working on a branch, and have all the key to the franchise. So, in the end, we all need to come and should have all the copies actually the same. We have to see it somehow. And the return mode, there's an automatic fix, right? So if somebody is inserting it, and others are deleting at the same point, it will automatically be, that's what will be fixed, that's what Google Docs does, and that's what, for instance, other HTML users might see as partners. And, you know, some of the developers, you really need to solve the version of this manually. Okay. So, how does it work? And I think this is the only point I didn't have in history where all developers fully agree instantly. Usually, you come up with ideas and problems and all have, you have 10 developers and at least 10 different opinions. Yes, but here we all agree that if you want to collaborate with others, you do not send the full documents around, because otherwise it doesn't scan. If it's a large document, it gets slower and slower with, for instance, what I mean is, with every typing of your editor, you send the full document, it doesn't work out. So we all agree that we have to send something, right? And then it starts, usually it starts, they press just keys and they dispatch the key events, but when you think about the title of the spot, where we talk about interrobable, meaning we want to work with other applications and connect with other applications, then we have a common improvement in what we are sending, okay? So, and here it comes. We need to agree on a common base and it's certainly not any keystrokes and it's usually, we only have ODF here, we have to, we normally have, but it doesn't matter, it doesn't turn out to send XML because it's sometimes, it's another way over there and sometimes it's online and there's a lot of noise in there. So what we have to do is we have to go to Ohio level to dispatch some of these changes. Okay. And now another point. I was asking a developer, I have discussed a lot of things, I asked him, what should we do? Should we get a DNA set of that? And time machine would work really good. So, when I thought of us today, what would be the best benefit to get out of the talk? It's, hey, how would some developers say, yeah, that's a good idea, we have to do it and we have to get this into a deeper office. Reality is, I talk to many, many developers during the parties, during connections, during other conferences. But the problem is, the burden is so high to get this going that it's very, very unlikely that it's we're going to work with lead office. So, just to get to the bottom. Nevertheless, I'm working on the DoDF tool list which is not part of the GF and there you will see some of the parts are implemented. But why are we in this mess? The problem is that staff and why are we in this time machine on Wednesday? Because, that, by the way, two years ago, I talked about the change there, that's the way of the year, why didn't you tell me ten years ago or something, right? And same thing, staff comes from the 18th staff, this is the office, the open office, the lead office. So, the design was not made for the current real-time collaboration requests. At that time, we had a single document, the person with this clock, it is in some kind of mode which all of a sudden on the internet. So, we have a single document that we moved around. Nowadays, we all have a smartphone, we have at least a laptop and we are collaborating with our staffs. We have a single document that we are editing in multiple machines. Unfortunately, with all the solutions that we have like sending mail, sending a letter, or using Dropbox, we're just, we're making the exchange of it full disk faster. And I have it later again, but we're just like softed up that are zipping on soft-cover repositories and we are faster exchanging the zip that doesn't help us. We need to somehow answer the key collaboration question and because whenever we want to work on a single document, we have to ask the others what have you changed, emerge what have you changed. It's very simple and I'm going to repeat myself with that. So, what have you? We need to have a new change design because currently, in the ways in the XML, we only defined this zipped XML, right? And there's no way to to define, to exchange something in a minimal way because we have nothing like this, right? And but the only thing we do have is the XML and it, what we know, it's possible like something like this. We have three different applications and then we have some defined change that seems patched like Debra saying the other, oh god, I got a new second paragraph and the other said, oh, I'm making a fourth paragraph, blue. And then, Google could change, not alone, could just take the two changes and merge them instead of looking into the documents and finding out what's up by various states, what has been changed just taking the two changes and put them together. They're too simple. So, the good news is, it exists. After Oracle dismissed us all, some of us went to okay, change. They belong to my role and I'm quite positive why one of them is using collateral online, but that's another miracle. But they have an office week that's based on changes and I worked about two and a half years on them and created on the back some, on a fourth of OEF, OEF, some change mechanism. It's like a black box. You throw in a document in a text document and get all the list of changes. Let me quickly show you how does it, how it looks like. So, think about, we have this document here and we get out that one. Can't you somehow see, I cannot, this is a, we see code, which is really code. I'm not sure if you, can see it, but I tried to show you a little bit. So, there's, every line, this is Jason, by the way, and every line is an operation, it's a change. And this should be an office document, which is horrible to view. But it's simply just character attributes and other line and a few styles. And with every line, there's something like add style, add text, paragraph and a position where you place it. And if you can think about it just like a bunch of API calls that will be sent to an editor and there it's, they'll be applied to document. And similar to like a git commit or something like that, these operations have to be applied at a certain state of the document. They agree on certain state of the document, like we are working on a collaboration officer on an editor and then we go offline but continue offline working. It's like we're working on a branch. It's very similar to git branch concept. And afterwards we have to come back. And I have some slides from the trauma that it's the same thing like a git pull request. You can do it and ask it about our first meeting. Oh, if you try first time to push and you realize, I've changed and you have to re-base and put this together. So this is I clean this up I got found a prototype found with a gem of old store and sold software for half a year and it took me a long time to do it. But it's think of it as a black box. You have to get rid of this zipped source of repositories. You have to get into the wheel of commits of this, right? And for this, the black box on the server I I go to release a beta this week, hopefully there's some other small issues going to be and another thing is of course to make it perfect you can push new changes of yourself to this black box and then you merge into this document, right? Otherwise it will be lifeless. But still it's only for developers. So the next thing is to to get an editor connected to this hopefully a Hebrew office but we are still working on a time machine. Let's see. Okay. Okay. This is the black box, actually. And just to to mention this is what I talked yesterday about in detail and I will show you how it should like, right? Because these are implementation details. Nobody is interested in the XML because you want to be you want to be working without people who are working on let's say Word or HTML but they all have the same semantic concepts of paragraph and bold and table song. So you have to hide them from our details of only the XML or the package. Okay. So this has to be private but nevertheless there is a magic API and usually that's what the user wants. He doesn't want to go to office body, office text, to these implementation details which are just annoying. They just want open text document into the paragraph into the world. Make it world-bought, right? And make it world-bought means like from the 6th to the I'm not sure, 12 hours something changes this. So I'm working there and hopefully somebody jumps in and the next goal would be and I applied the third time. The third time. To the prototype font. But I think I succeeded this year so I'm trying the next year to to get exactly the story. I have my black box on the back side of the table and I'm trying to get some editor working with this. So let me first explain why is E-max here? E-max, you know E-max? You know E-max? Oh, but everybody is leaving already. Okay. E-max is a text editor for those who have no way to understand. And that means how does an ODF application sorry, how does E-max become a web application? So in an ODF application an application is able to load this XML and save it in that event. So the thing is in the back end we throw this let's say a very high sophisticated document like a specification into this black box we get all these changes out and then we only take the text and the paragraph changes out. Well, within E-max doesn't have any paragraphs but we can emulate it by a line. Okay. Every single line in E-max while we are in the ODF mode is a paragraph. And then there's text and there's nothing else we can add. Yes. But that's sufficient if you want to just read or fix some titles into that into the leads on paragraph and text that's sufficient. And the best thing of all we remember we are no longer in the floor in this area we now merge our changes into the existing document because when we have to change from the after E-max we would just put it back to the back end and before that we will put the unknown features back into it right because remember we were drawn out and we merged back in so by this you are able to add with E-max the ODF document without destroying it. Okay. Remember LibreOffice for instance it's reloading everything in the model if there is anything in the XML that LibreOffice is not aware it's lost sorry your models it's either you've got it in the model or not and if you have a very huge document you press save you take ages to save right that's quite common because everything has to be loaded back into this that's totally unnecessary that's 80 yes we can track all the changes and merge them that's what we we should want to do okay so what I did since Tokyo is I did a little smoke test right because the CDNL5 you can what's here you can clone it install it build it and then go to some sample file and put a few lines into it I've been to Warshall the guys are coming from Berlin with a bus I'm from Berlin and sit together a day and they gave me some details on what events I have to listen and the thing is CDNL5 the first version is a they switched the domain sorry their model from this full document to a change-based document and when I read it I thought cool how about instead of taking Emacs which only knows text and paragraphs why not taking something that is a really embedded HTML and where can build a full document that's even here all the tables and this and so on so what I did is like show you the constant I go here on my which box this is the CDNL5 can I see there's a homepage on there so if you open the sample MPI then there's a sample index you without there under your sample over there you see you can simply add there right I'm making X and I can only add to font and here I have my slides or I assume my slides yesterday's slides is just one line the event is to apply operation the application whenever you type something it's being it's being called and the idea is to gather all the changes right you have to be aware if you want to version document what you did so if I press now at 12 for the console then you see there's my X and I do some more complex with trust yeah okay so you will not see much but what I did is I knew you would trust me I said I'd paste it so there's a lot of why not point and things I do not understand if it's necessary but the goal is to translate those changes to the changes to the changes of the black box I have worked so many years on and that's now the TF property so you see I inserted the X at the position zero that's a paragraph they come with zero I think it's a mistake human the API that is human should be as close to human thing as possible so when you say when you want to point to the first you should write one and not zero and X and L by the way doing this and I'm doing this with Jason as well and but you can increment it doesn't matter but it said the X is now the first paragraph and the seventh position and then there is some attribute operation it's called format in our language and it's starting in the first paragraph from the fourth to the eighth character it's making the time quite simple okay so the next step is to write a plugin get all these things and send it to to the back end to a sort of maybe class function something and in return if you load the document push into this to the browser right and then there are things also like who knows kids okay so git there are git hacks so you can currently if you check in an OT and another version of it then you may if you see some binary right this is nonsense okay but what you can do is you can override it and put it into put with a hook whenever you add an ODT you would call this back end black box and what you would do in there you would do the put in the list of changes right so when there's another ODT coming in you put the other list of changes in and the dip would be the dip between these changes which is much easier and best thing of all the dip of these changes is a small set of changes with a pride to one of them creates the other right it's ideal okay so um that's possible um other things very easy are if you expect all the text right you can translate it like with machine reading um Google Facebook a lot of source there and the best thing you don't accept it where the text was you can translate it just delete the existing text and put the other back right and still keep the forwardation okay so there are some queries coming up um when we go this way and so I think it's worth to go there although I'm not sure if the e-bra office is able to follow us with our time machine I'm not sure of how this works out but um I talked with Paulson he said if people are interested like people who donate in money um then everything is possible and people are only interested when I start with CQL and show people that oh yeah I want to have the e-bra office as well so that's my hopeful uh approach here um we may not be able to change this specification why should we bring these changes to this specification because I want to have interoperability I don't want to have a login with this black box on the existing ITDF sorry and I want to have certain kind of openness so the always specifications here she's like cook cook recipe all different meaning um it's um we put this idea into one place where everybody can gather it and that it um it can be used by everyone for free so um what we do not have is we do not know what a table is we do not know what a we don't know what a we don't have semantic bookings we just say oh this is uh but we do not have defined all images this right and um most of all the next step what can we do um what are the usual things that the user is editing and modifying what I said these semantic entities call like a table table roll table cell cell whatever yes text format and somehow um we have to do it in an interview 600 events it's crazy so I think about um about the main specific languages yes it's like the main specific languages it's like SQL it's a language invented for a certain idea right so um we have to go with automation we have to be there with a lot of I would say hopefully cleverness that we can get rid of so um I do this quickly now because um it's just an idea and I'm actually working on it this is a part of the audience application and currently um we have this in yes it's really less it's in 18,000 lines of code there's a very huge text bar right and this defines what a table is and what optional documents go but it's very hard to read this 18,000 lines of sorry of um text open and somebody asks me oh by the way can a paragraph be nested somehow yeah to search and find in this document which is crazy okay so um inspired by some video I have to gather a link here of a computer congress of back counting by graph databases and minus kernel I put this thing because um this is just a star the red are the attributes and it's just in the middle of the table element with um with the table sugar a little while I play but this is a first step to visualization and in graph database you can just traverse the tree you can ask the graph with a like you can ask the graph with a routine please traverse yourself and check yourself instead of text P somewhere the text P right so you have this question put into an automation and I can do the other text and this is an implementation implementation detail of this we call this multi schema data because we don't I don't want to read a write program myself I used to reuse some open source software as called earlier some multi it's called DTB relax engine what is the grammar that we are using in the ODIF and WCT the grammar and I just found the internal model an axonal means it's nothing and choice of axonal means optional so this is the same thing here right it should be it should be made easier okay so that's very short it would be good to use more tools better tooling um to get rid of this complexity so this is my final slide so first of all this website of the ODIF 2 is very this is the operation that I currently supported and there's the source um the changes are coming this week hopefully um and the simplification is there and the last thing is um I will talk for myself the time here the next minute five of it um I wrote three pages because the ACI coming back together I met them four years ago in Colorado to to show them their idea and um I tried to summarize what I hate on this all this current aware way of file formats and um there's just three things first this change tracking should be embraced from the beginning in a file format right what I said we now do by reverse engineering adding the ACI right to it a semantic ACI should be there from the beginning right second thing it should this simplification what I'm trying to do as well should be machine real it should generate source from it right but not writing reading 600 pages to to train and generate some software which is basically like painting by numbers because everything everything is is fixed right but aside of the user view the last thing of course is layout uh latex is stable on all machines and we are we are totally um yeah what I'm saying we're losing up with stable layout we're using pdf and on the f which is crazy why not having a file format that by design we have stable layout like that latex but it's um uh but having it raised in a simplification right because it's also uh so three things of your pages the coloration changes the layout and the specification should be more modern okay that's any questions thank you what does it make DOM what oh yeah DOM what does DOM DOM sorry DOM it's right and this is document object model and it's by DOM it's the way of API like only have application around that API but browsers do it browsers every browser has to support a DOM which is like a timeless um tree yes and we actually now it's we're into a DOM a JavaScript it's working on a DOM it's very simple basic but it works we have a great interoperability at least much interoperability JavaScript is totally um probably the term okay job my person JavaScript is very light descending okay good question thank you yes do you know several present artifacts from the Clipset project for making progression and these with models at your work uh sorry try again not like this my do you know like the Eclipse projects Eclipse yes of course and here yeah so they have some more or less recent artifacts to manage models and differentials and these between models are helping to collaboration okay so you ask me if I look Clip because they have a different mechanism based on collaboration right but they all work on syntax okay and the the trick that we are doing here is to get away from the syntax because I didn't show this no no no it's nothing related with syntax if you don't know they eat okay you show it I can yeah thanks I'm happy to if you it's beautiful I'll put it in the slide it's amazing okay I will see any other questions otherwise