 Wiki automation tool. The reason why we are developing this is that we run multiple wikis. They all have different user groups, they all use different data models behind them. They all require a lot of maintenance. For instance, if you want to change a form or you want to add a property, it trickles down into multiple pages and a lot of edits and then you end up with inconsistencies. So it's very tough to maintain. And while the data models get more complex over time, we run into bigger problems that are a threat to the events or the products that we support with these wikis. So we recognize that and wiki development is not a core task. We have to do other things on a daily basis like world peace and stuff like that. So this is a side track but we are not very effective in how we spend our time. We spend our time in doing mediocre maintenance on wiki markup instead of governing the overall picture and only spending our creativity on the things that cannot be automated because we feel that in the design of a wiki and I'm almost losing that screen as well. In the design of a wiki, when you have a clear vision or a clear description of your data model 90% of what you need is standard template forms, properties, category definitions and your creativity is in that 10% that makes it a special tailor made for your situation. So what we did is think about how can we automate that 90% and the start is that if you have a data model and you define the data model in a way that it can be consumed by a certain piece of software that can translate the data model into all those things that you otherwise need to add to that single white page that you end up with when you install media wiki on your system. The pack of flour that you have to speak with Greg, all the things that you need to add and the data model that we chose was and this is somewhat ambiguous use of words but we use, our data sets are called concepts and those concepts are grouped together in packages. So here in this picture you see okay this is the data model, it has packages that define a set of related concepts concepts might be related to another and that is the trick of the semantic relationship that we have of course and concepts are composed of properties etc. So if someone who wants to have a wiki is able to write this down in a format that we need and currently that is an XML file where we define everything then we can use a piece of software to translate that into a set of standardized templates, forms, properties, categories everything you need and then you just upload your data and you're good to go. So what we did is we divided the runtime of the wiki as the middle piece from the design time of the wiki in the design time you have the wiki model schema on top of that we put the wiki model that we exclusively designed for a certain wiki, we run it through a wiki automation tool and then out pop what my colleague called the application pages and those are the templates, forms, properties, categories in that process you can maintain a change log so you know what you have been changing from a previous version of the wiki and you can do it on a live wiki as well so the change log and you can produce some incoherent reports for things to go wrong but in that runtime if you don't have this you don't have the purple blocks on the schema because the only thing that you end up with is a wiki platform with a wiki instance so on top of that our software projects the application pages and some CSS files that we need for the particular wiki and then you're good to go that defines in itself the data model on the wiki and then we populate it with data and that constitutes the runtime version of our wiki it runs very quick unfortunately I don't have it on my laptop yet there were some bugs that we needed to cover first but we're hopeful that within two or three months we have it running because we have a big project coming up over the summer where we need to use this explicitly right now like I said we're about to go live with this tool so to give you an idea what it does let me see the wiki model like I said it's just an XML file here you see for instance the start of the definition of the data model with this package is called standards management and it has a concept named profile and profile has these properties and down in the XML these properties are defined in what data type they have etc etc and that's about the way that you define your data model you can even define how it's being displayed on the screen because we have some choices in there as well then forget about the changelog the application pages what you see is what we generate based upon the model are the files for the packages and the concepts and the related properties we keep an extensive library of files in the project namespace that give us a better insight of how the data model functions and what goes in where so we have over a few pages per data set so to speak that gives us a better insight in the underwater behavior of the data model and because in the project namespace it's way out of vision for the generic users now next to the model-based generated pages we also can add a common library of pages and think about those templates that you use in every wiki that you have because they are so nice to have or CSS files that you use in every wiki because it gives you that added functionality that you don't have in the default setting so those are easy to add as well so you can add a base functionality there that doesn't require any generation from the model but as you see on the page it will give you some pages in the project namespace that gives you an overview of what each part of the model is and then per package, concept, all the properties that we have and the common library with all the default templates that we move over so this is all very well documented the CSS files that we use they are all linked and displayed so you can see what goes in there even the color schemes that we use for different concepts and the result is functions that we use to hard code every time again in templates and sometimes you use templates in templates of templates to standardize, look and feel, functionality on your pages these are all now part of that wiki automation, we don't have to worry about that anymore and instead of nesting multiple templates over and over again because all the templates are generated automatically by a computer we don't have to worry about... the reason why you use a template for a piece of code is because you don't want to type it over and over again and you don't want to make mistakes or introduce inconsistency because you change the part of code in one page but not in the other but if all those pages are generated by a piece of software then by definition they all are consistent already so a lot of the things that normally you would have in multiple nestings of templates can now be directly configured into the page itself and that gives you some advantage in speed of processing and stuff like that so here this is just a very simple example of what we have in the wiki this is still in the project namespace but it shows you the packages we have installed at this moment and in each package what concepts there are so in what we call the C3 taxonomy we have servers and applications and you can see a listing, a tree format you can add new with the default form that we have etc etc so to give you an idea normally in our enterprise mapping wiki or EM wiki if you have an application like for instance an airspace control application you have a description, you have a navigator on the side you have a nice little graph that shows the place in a hierarchy of applications requirements definitions, you have the services that are required to run that application the capability standards, the information products that are being consumed or that are generated as output etc etc this is just one example of one wiki that we have this one is for our enterprise architecture and so this is how it looks right now and this is how it looks in the new setting it doesn't have all those semantic relationships yet because we haven't transposed all the data and all the functions in that new data model yet but you see that it's a very clean navigator with the simple links for the category, for a tree listing for a semantic search, for opening the form and a relation to other concepts and the point is this didn't take any editing I didn't touch the templates, I didn't touch the forms I just defined the data model, we run the code and what is it, 10 seconds, 15 seconds later you have a completely installed or a completely refreshed wiki with all the templates, forms, properties and categories and all the things that you define on top of that there may always be pages that or templates that are not part of that wiki automation for whatever stupid reason they are not deleted, they will still be there but the things that you have if you want to update them, if you want to add a property or you want to change or add a category, whatever you don't do it in the wiki anymore you do it in the XML file, you press run and it's in the wiki so it makes it very easy to design, maintain a wiki it makes it easy to replicate a wiki I had a short discussion with Cindy yesterday so what the good thing is, we discussed yesterday about how to make installation packages for wikis and there are multiple ways to do that but then you're with a blank bare bone wiki page then you have to start coding this helps us to do a lot of that 90% or maybe 95% of what we want to achieve now the next step is, and Cindy was absolutely right in that the next step is we now need to define our data model in XML and XML is even harder to combat than wiki markup so it takes a lot of effort to do it right you do it step by step and if you have a complex data model it takes quite a bit of time to do that it's hard labor what would be nice if eventually you would have a more graphical user interface so that you wouldn't ask your user group your audience, your customers to go hack XML to create a wiki just ask them to define it in a graphic interface and if that translated into the XML or into any other format that we can process in our automation tool then that will be great as well so I'll certainly will take it home and we'll discuss that the thing is it isn't operational yet it will be in the next couple of months now Jaron might remember I brought this up two years ago in the EMW con in New York and it's taken more time than we wanted but I'm pretty sure that by the next EMW con we're able to present this but if it runs well one of the options is also if we could make this available to a wider user community and that other people could have a go at this as well any questions? yes sir you do that in the XML file you run the wiki automation tool again and it replaces your old templates with the new ones yes on the wiki itself you can but those will be overwritten so the best way is to define it in the model if you have templates that you do not want to be generated then you choose a different name that's not part of what is being generated by the model and then it will remain I have a lively discussion with my colleague who is programming this stuff he is absolutely sure that any template can be generated in his tool so that is his useful enthusiasm that I appreciate very much but I don't think that is entirely true I think there will be reason enough for templates to exist outside of that 90% or maybe it's 95% that we generate automatically but even if a user wants to make a template for whatever stupid reason because he feels comfortable with how he or she uses the data on the wiki and wants to display it on some pages in their own user domain who am I to stop her? that should be possible so that is but in principle there is one thing that Cindy asked as well is everything that is being generated by the wiki automation tool is protected so only administrators have editing rights to change them so users cannot change the templates, forms, categories properties, anything the CSS files, anything that is being defined through that automation tool is all protected from editing users are supposed to focus on content content is the most important thing that we have on our wikis that's where they need to do their edits we don't want them to edit the templates good question quick question is the XML, are you designing that from scratch or using any standard for the XML I presume you are doing a schema to define what it is are you I was sort of thinking about XMI when you were talking about the potential to be able to translate from XMI into your XML I don't know, might be I don't know, I'm not too familiar with that that is part of the work that my colleague has done but he has I have stressed this from the beginning that he needed to document it very well so luckily for me and my colleagues who now have to run some wikis through this process he has documented in a manual very detailed what goes where and how we do that for instance, you know when you load it up with data it will be displayed in a certain way well, do you want to have it in bullet lists or in plain text or you want to have tables do you want to have it in a pie chart so there are so many ways to display things and there is a way to already define in the XML how data on certain pages are being expressed so he documents that so he said there you put a line between those tags and then you fill in either this one or that one or those values and then you will have the outcome if you don't like the outcome you change the XML you run the script again and you see the results are people interested to get a demonstration and see more of this when it finally works is that something that I could plan ahead for the next conference yeah, okay, good, good if there are no more questions then I can close shop here