 Thank you. I'm happy to be here because I have a strange idea. The strange idea is that in 25 minutes you will be able to create your own personal assistant and five minutes later you can test it and you can do things like you know how to do it with Siri and you will be able to do this yourself. So let's start with this man, Douglas Engelbart. Douglas Engelbart is known for being the inventor of the computer mouse but his idea was to have an augmented human intellect. So he was thinking about how can we create a smart interface between a machine and a human and it came out that a mouse is appropriate to do this. But the important idea he invented is that it's important to have augmenting human intellect. So that's the main thing what personal assistants are all about. It's about augmenting the human intelligence and we can think what is possible as well. For example, performing tasks can offer services. That's what we know is also available in the personal assistant and do many more things that are beyond the ordinary power and reach of humans. So all the time when people had been thinking about a personal assistant in the past they thought the right communication interface with a machine is to talk to them. Like in this very old Star Trek movie where Scotty thought he can talk to computer in the 90s with a mouse. But all the commercial systems they also implemented this now. You can talk to Siri, Google Now, Cortana and Alexa. That's the thing where people have the impression that something intelligent. They are talking to a computer which is intelligent even if the answers are scripted and very simple. So they are called artificial intelligence system. I thought if we all want to learn how a personal assistant works then we should learn how artificial intelligence works. So let's have a look. There are many definitions and in this morning we already heard what the definitions of artificial intelligence are. And here are some more. Artificial intelligence is if a system can think like a human or act like a human or if we don't compare it with human act rationally or think rationally. So what does that mean? We distinguish two different opinions which are called strong AI and big AI. The strong AI says that if we create a thinking machine then it actually has a mind and it's actually thinking. And the weak AI thesis says it's just acting like it has a mind and it's acting like it's thinking. It doesn't really have a mind. So these persons here wrote a standard work for artificial intelligence, Russell and Norvig and they say usually it works like this. We don't think about the strong AI hypothesis and we do weak AI. Weak AI consists of some simple methods, some simple strategies. They are not that simple, they are sophisticated in some way but it's not so difficult to explain which kind of algorithms they are. For example, constraint search is not the same thing as web search. This is more difficult if you have a galaxy of options. You have to steer around and find the right one. That's what you do with an heuristic learning. We already heard a lot of learning methods and what a learning method is. Breathing, this is working with knowledge and logic. A deduction system is working with this. Deep playing is a method where we can find the best solution in an uncertain field of options. Most of the algorithms are in one of these groups. These are the methods to create artificial intelligence. If we want to create a cognitive assistant, then we have some more things we should consider. For example, language processing. We are able to handle a large amount of data. We should know what a reasoning chain is, what a computer proof is, maybe what an expert system is, and we should be able to handle machine learning algorithms. But if you want to do this, if you want to handle a personal assistant yourself, then you should be able to work with open source software and have some components you should expect in an open source framework. There is a server, an AI server where you can put in things and get out things. It should provide a personalized agent. Maybe you have a mobile client and you have the same thing as Siri Cortana and you can speak to your artificial intelligence. You should be able to create user-defined skills. That's a very important thing. If everything else is provided already, then the only thing you have to do is create your own skills. The important message here is creating your own skills should be really easy. It should be as easy as creating a wiki article. That's the main idea. Creating AI should be as easy as writing a wiki article. I will show you how this works. We created, in the last Google Summer of Code, a log-luck project where we collected tweets, messages from Twitter. Out of this project came the idea that we need something to formulate search requests in a different way. What came out was the SUSE project. That's what I'm now talking about. I will explain what we did there. It's called Scientific User Support Intelligence. What we want to do is do an aggregation of world knowledge. Have some methods for problem solving integrated. Be user-centric so you can have accounts within the system. And machine learning for accumulated advantage. That's a technology where you can increase what you have all the time in each cycle of more information you get better and then you get better with acquisition of more knowledge. What we did was not... We didn't intend to create artificial intelligence. We didn't want to create a personal assistant. The only problem was to aggregate different search sources. I created the Yasi search engine a long time ago. It's a peer-to-peer web search engine. It's a source of web search results. The log-luck project was about collecting messages from social media. The idea was to integrate both sources in some way with an aggregation service. If you want to do this, you need a common data structure. You must do a kind of normalization of the information and post-ranking so it can bring different sources in some kind of order. Then you have something like a desktop search. After a while, we found out that it would be interesting to ask specific questions to the search database. What you usually do, and Google is also providing in the search interface, are search modifiers. You can ask to find something in a URL or in a title. You say, in title. We started to develop our search modifier language like who tweeted most about FOSS Asia and so on. Suddenly, we had to handle natural language in some way. We created conversation rules. It all was then suddenly about creating an AI assistant and going the same way as Siri and Cortana is doing. At this point, it was interesting to integrate more data sources, not only search engines but maybe data from Wikipedia. If we had a look at the data structures from the search results here and the search results we created in the search aggregations and they had been the same. The same data structure, it would be nice to feed it back to our own data source like what we retrieved so far. It's called reflection memory. The structure is the same. We can feed it back again into our aggregation service and these data structures was then called thought. We found out that with this construction, we can do everything which we would expect from Siri and Cortana and Alexa and so on. All our conversation rules had been appropriate for this. We said, let's go for a personal assistant and get rid of the web search interface and we called this construction the Susie Mind. We didn't create a chatbot. We didn't create a personal assistant. We created a search aggregation service but what came out was a personal assistant like software. A little more inside what happens if the user starts a query. We select some skills. These are conversation rules which are appropriate. Very important is the ranking to apply specific skills first. There's always the catch all skill at the end of the order where the system says, I don't know an answer. That's always one of the skills but it's the last one which should be considered. Then we do some first order logic type deduction here and we consider the skills as deduction rules and validation means we check if the output system is appropriate to show this kind of answer. What we need is a skill memory, what we need is a data memory. We can feedback information which had been created during deduction into the data memory and also create some abstraction out of it. We implemented reflection so that Susie is able to call itself within an answer generation. We have external data sources of course because this is mainly a data aggregation service from the web. It's called the console service and we have a skill source which can be applied from outside just for testing and testing new skills are called Susie dreams. Maybe we can much more with this. We consider our conversation rules as a very weak system. It's not natural language processing like technology but with plug-in technology you can plug in any system you want to. And finally we want that Susie is able to write its own skills. So this is our Susie mind construction and the question is what are user defined skills because we want that creation of a skill is as easy as creation a wiki article. So let's have a look how they look like. The most simple skill is just a fixed query and a fixed answer. This happens if you ask Siri a simple question like sing me a song or tell me a joke or all these fixed script requests and answers have a similar way. There are just many of them. So this is the first and it's the most easiest skill you can have just two lines of text. And skills are actually really simple like this. They are only text lines. There's no Js, no XML, no other set up. You just write these lines. The second example is about a random answer. It says add up potatoes, vegetables or fish. It just picks a random answer for this question. And you can have different questions which causes the same answer as created with this kind of line. Then of course you have patterns where you can put in anything or you can read out the patterns in a variable and repeat it again. You can use that variable, you can use many of these variables. You can feed that variable in another variable to store it permanently and you can use that variable in a second line so Susie was able to learn some topic. You can assign some status variables which had not be shown in an answer but then used afterwards. You can use with decision points if variables are set and have different answers depending on it. And you can have of course comparisons. You can define some kind of functions by just having any query line which a person wouldn't say but then you use it with the backward function here and then this is used as a reflection at this point. Susie is calling itself at this point and assigning the result of this color into a variable and using this if it's set so it's then fixed. You can do many things with this simple construction and I think it's not natural language processing. It's not sophisticated but it's sufficient to fulfill the most things and you can plug in JavaScript and evaluate what you have in the query in the JavaScript. You can calculate there and this is the most important thing where we started. We need all the other very simple conversations but what we need is to do search aggregation. You can have an access to an external API. For example here you get a JSON back from the lock-lock search service and within the JSON there's somewhere the answer hidden and you just say where the JSON path is. This is a naming of a JSON path. JSON path is a standard how to address where information in the JSON is and this is then used. It's an array where text is a property and then you can get back the text. This is a request line where you can get a tweet where a specific word appears in the tweet and you get back the tweet line. You might say this is not so complex. In the future we will do some more thinking with backtracking so several answers can be considered. This is partly implemented and it will create something like a first-order logic. We can also plug in pollock. The next thing is reflection. That skills are able to read other skills and say what's inside other skills and finally skills which create skills so self-learning effect is possible here. Here usually the effect that you think oh that's a chatbot, that's not artificial intelligence comes into your mind and that's a standard effect. It's called the AI effect. Every time you understand how something works and it's able to create something which a human is usually able to do and you understand the algorithm you say oh no this is not artificial intelligence. It's just a simple algorithm but that's usually what happens. So let's check what we already implemented here let's have a look back at the standard methods which are used in artificial intelligence algorithm. Reasoning, we implemented Susie thoughts which are sets of facts. These are structures which are required for backtracking so you have different options where you can choose from. Susie skills are deduction rules and they are implemented as such and empty thoughts are failed states which trigger backtracking. This is a standard method in first order logic. The ordering of skills is a constrained search method because you are ordering in such a way that the best result is achieved. We have some learning methods within of lock lock because there is a Bayesian filter which can do a sentiment analysis and in the future we will use game playing technology to create new skills automatically. So for cognitive assistance what do we have here? We have text-to-speech and speech-to-text in our Android client and pattern matching for natural language processing. Not the sophisticated method but one that's easy to implement and that you can use. We have 1.8 billion tweets which we use to create answers from our lock lock harvester. We have thoughts and backtracking which creates some kind of reasoning chains and we have sentiment analyzers for categories of tweets. We have the server implemented. It's running. You have accounts. You can download an Android client and we have user-defined skills and they are called through the dream in a test environment. I show you how easy it is to write a skill and it's very easy. You go to dreamasusie.com and there's an etherpad running. An etherpad is just an empty web page where you can put in any text and you can collaborate with other people. And then you write down some Susie skills. You open your chat client either the online test client or also the Android client you just say dream Susie test and then everything which you enter here is active here. So that's something you can try out right now and it's really easy to test this kind of technology. People warn about artificial intelligence like Marvin Minsky says we are lucky they might decide to keep us as pets. They are so strong. And Stephen Hawking says it will be the end of the human race. Elon Musk says it's our biggest existential threat. He is the founder of PayPal, Space X and Tesla and he also founded OpenAI. OpenAI is the answer on this threat. He says if we want to keep up with the technology that artificial intelligence is creating itself then we must create an augmented human intellect and to do this we must develop our search our artificial intelligence to be able that humanity can keep up. So this is the good point for all of us to start testing this kind of technology and I want to end with the wise words of a robot. So I hope you find this interesting and you want to come to our workshop tomorrow is the workshop and please have a look at us Susie.com. Thank you. All right. If you notice there are actually mics in front on the left and the right side we will have Q&A a little bit. Is there any questions please come down to the mics on the left and the right about Susie and are there any questions that you have? All right, while we wait for the questions why don't I have a question? What is the potential future of the Susie project? The idea is that people start to create their own skill set and with their own skill set we can increase the capabilities of Susie. So the best future of it is that it grows like the Wikipedia project started to grow because it's so easy to write an article for this purpose we made the Susie skill so easy that everybody can start and contribute to the skills. Any other questions from the audience? Yes. How do we make sure... How do you verify the statements that people enter in your system? How do we verify the statements that are input into Susie? You mean the questions or the skills? The correctness of the skills. How do we know it's correct? If you create a Susie dream it's just active in the session it's not active for all the users it's only active for your own session where you enter the Susie dream and if you think you have a really nice skill set you can send us a pull request and at this point someone looks at the skills you created so you see if it's correct or it's valid in some way. All right, great. Any other questions? Any other questions out there? Yes, come up to the mic there, yes. How do you monetize the Susie project? How would you monetize? How do you make money from Susie? This is not the point... It was not the point last year when we just created it during the Google Summer of Code project because it was necessary that we develop some kind of career language. Of course we can think about this. I think many companies have the requirement of creating a chatbot so at least some consulting is possible. All right, any other questions? Hello? Okay. Is this audible? All right, good. I have a question about the potential of a bubble since you can customize the answers to the person's login is it possible to turn it off to see what other people are seeing when they ask a question? What other people are seeing? If you start a Susie dream then it actually turns off all the other rule system which had been there and is only used if your own rule system is not able to answer the questions. So within a dream your skill set is always on top and creates it so other things are invisible. Of course you must test it if you put them in context with other ones and there the complexity starts. It's an open problem. All right. All right, we have time for one more question. One more question. Hello? Can I have my own Susie on my own infrastructure and train it myself or is it somehow global Susie and everybody joins their trains their Susie there? The Susie server has a free license. You can download and start it and it's not difficult and you can use it with your chat client. You create yourself or also the enterprise. You can host it yourself. But here it's hosted on astusie.com to be simple. Thank you. All right. With that let's give Michael a round of applause. Thank you so much for sharing.