Starting my PhD

July 1st, 2007 by Amancio Bouza No comments »

I’m starting my PhD in July. I’m associated with two research groups from the Department of Informatics at the University of Zurich. That are the Software Evolution and Architecture Lab (s.e.a.l.) headed by Prof. Harald C. Gall and the Dynamic and Distributed Information Systems (DDIS) headed by Prof. Bernstein. I’m lucky to start working on the hot topic of recommender systems. The overall goal of the joint work with an industry partner is the development of a web-based location recommender system. This project is partially supported by the CTI (commission of technology and innovation) because of its high potential use in different areas like tourism. The CTI is the national agency for innovation. The CTI supports the knowledge transfer between companies and universities to create innovation and not just inventions.

Well, I’m extremely happy and proud having this chance to promovate advised by excellent advisors even if I get payed less then I would get in the industry. But who cares about money, right?. What I looked for was a great challenge that only a PhD can provide.

Kick-Off Meeting of the Localina project

Kick-Off Meeting of the Localina project

I finished my master thesis on “Graph-Based Knowledge Browser for a CMS”

May 23rd, 2007 by Amancio Bouza No comments »

Knowledge Graph

Knowledge Graph


A week ago, the 16th of May, I finished my master thesis about an implementation of a graph-based knowledge browser for a content management system (CMS). Now, I spend time in relaxing and organising my next steps to the future. The current IT market is asking for graduates and I remark it every time taking a look to my email account, if you know what I mean ;) .

The time writing my master thesis was absolutely great. It was extremely work intensive, but great! I got a lot of support from my family and girlfriend, and from my friends too. Thank you at this point. Now, I know what it means to work from 7.30 to 23.00 over several months every day including the weekend. I experienced that working over 100 hours a week isn’t really efficient. You work not at 100% and your personal efficiency rate decreases every additional day. It’s not recommendable to work many over a long period of time. It does not only affect your work, if you know what I mean.

Anyhow, my thesis’s topic seems to be very attractive. During my research I got lots of requests from all over the world. A Professor from the St. Louis University in America was interested in using my tool for further research on Natural Language Processing (NLP). Other knowledge workers wanted to share experience. The results of my research and the potential of an interactive knowledge map for knowledge transfer leads me to possible future works. I just got some recommendations searching for venture capitalist to innovate my invention. We’ll see. It’s not the only project on my fingertips.

Abstract

The success of knowledge transfer is crucial in the area of knowledge management. Not only companies in outsourcing-relations have the need of successful knowledge transfer. Organisations have the need of successful knowledge transfer too in order to create market advantages. This thesis introduces a graph-based knowledge browser for a CMS to support the topic of knowledge transfer by providing ?shared material? for generating knowledge and providing easy access to knowledge by visualising knowledge as associative networks. Knowledge is presented as graph or radial layout in hyperspace. Web 2.0 technologies like AJAX and SVG are used for the implementation.

IfI Student Enters Semi Finals in International User Interface Competition

April 9th, 2007 by bouza No comments »
Knowledge graph

Knowledge graph

I’m proceeding to the next round in the Imagine Cup 2007 as 3 ranked team. Only 30 Teams with 1-2 persons had the chance to proceed to the next round. This 30 teams were elected by community voting. Only registered competitors were allowed to vote for other teams. No one could vote for his own team. The Imagine Cup consists of 7 categories and over 100′000 students from all around the world joined to compete.

Imagine the Wiki concept combined with Web 2.0 and let it become 2D. The knowledge of a Wiki or every other CMS is visualised as a topic map with nodes (e.g. article, person, knowledge entity, activity) and relations between them if they have a relation. You don’t see one article at once, you see the hole context of an article! You can directly add new articles in the topic map or knowledge browser and can directly paint relations between nodes. The topic map is rendered in hyperspace to focus on the nodes in the center of the screen. But you can use your mouse to move the hyperspace and the hole topic map (i.e. graph). The layout is calcualted in realtime with either a Spring model or a radial layout. In the spring model repulsive and attractive forces between nodes are calcualted to get a layout with minimum edge crossings etc. (graph layout heuristics). It looks really nice ; It runs on a Web browser and with Web 2.0 technologies (Ajax).

My mentor Benjamin promoted my currently successful participation in the Imagine Cup 2007 at the Department of Informatics at the University of Zurich. He published a news article about my current ranking (3rd rank) and proceeding to the semi finals:

Leaderboard of the Imagine Cup 2007. My team is called IfIface

Leaderboard of the Imagine Cup 2007. My team is called IfIface

IfI Student Enters Semi Finals in International User Interface Competition

IfI diploma student Amancio Bouza ranked 3rd in the user interface discipline to enter the semi-finals of Microsoft’s international computer science talent competition Imagine Cup. His successful contribution presents a novel AJAX powered user interface. The solution improves accessing and modifying graph based knowledge structures in an enterprise content management system. The user interface unites editing and browsing functions, and therefore will empower regular knowledge workers to view and change how knowledge is represented within their organization more easily.

The diploma thesis is currently under development with the Information Management Research Group at the IfI. Since Mr. Bouza seems to be the only Swiss participant in the competition, he hopefully will advance to the final round held this summer in Korea.

Published: 04.04.07

Downloads

Guild management in World of Warcraft with graph-based knowledge maps:

March 8th, 2007 by Amancio Bouza No comments »
Guild members with professions and character class

Guild members with professions and character class

Knowledgemaps aren’t usefull in companies only. The can be used in every domain where people challenge to get knowledge. In multiplayer online games, especially in so called MMORPG like World Of Warcraft (WoW), the players suffer don’t having an easy way to get an overview of their own guild.

You have to know that in MMORPG people can build or join a guild to share their skills and help each other the finish heavy quests. In WoW people can select between various professions. Each profession (e.g. Blacksmithing, Leatherworking, Alchemist) is able to produce important stuff for other players. In a guild people share this products very cheap. If you want to buy those item on the market you would pay realy a lot. An other important reason for guilds are to build groups of 5 players to fight in so called dungeons. Dungeons are places in WoW with heavy enemies. You don’t have a chance in dungeons without planning the group. The group should consist of a healer (very important), a tank (usually a warrior) and a combination of other classes.
In a big guild it is very hard to find out who’s a healer etc.. The problem increases by the fact, that people don’t play only with one character. For example one plays as healer and plays a warrior as twink too. You can just use one of them. People loose the overview of who is who and have problems to build groups for dungeons.

Using a knowledgemap that visualizes the guild by showing the guild characters, their professions and classes, solves the problem of guild organization and aquiring guild benefits. Connecting Characters with twinks and connecting characters to professions and classes creates a knowledgemaps that helps the guild. You don’t have to know which character has got what profession or is of what class. If you are interested in some armor, liquids, food, juwelery, etc. or if you are interested in building a group for the dungeons that needs a special combination of character classes and abilites, you only have to study the knowledgemap.

In that sence, knowledgemaps leeds to a well organized guild for MMORPG, where the players effectively create dungeon teams and profit from the products of other characters professions.
In my case, I used the knowledgemap metapher to visualize the characters, professions and classes. The guild tried to publish their assets as a forum thread before. But it realy wasn’t that easy to find out what characters is only a twink, etc. by reading all the posts. Especially when people leaves the guild, delete a character or what ever the assets of the guild changes even they mention it in a post. But it’s not possible to get the status quo of the guild if you have to follow all the posts in a thread.

On the other side, a knowledmap can always show the current situation and that’s the power of it: Visualization of the status quo in the guild, ability of organizing dungeon teams and benefit from professions of the other characters.

Great Video on “Internet is for ****” with World of Warcraft Characters

March 1st, 2007 by Amancio Bouza No comments »

Playing the MMRPG World of Warcraft you get in touch with all the really nice movies on YouTube about World of Warcraft. My favourite one is the video clip about The Internet is for porn. Well, the video is far away from real porn. But it is made by people characters using emoticons. I really like it. Check it out.

Being addicted to World of Warcraft

February 7th, 2007 by Amancio Bouza No comments »
My druid Luthien riding in Winterspring

My druid Luthien riding in Winterspring

I started to play World of Warcraft (WoW), a MMORG (Massive Multiplayer Online Roleplaying Game), a half year ago. Now, it’s time to recapitulate the time i spent in this virtual game world.

The name of my avatar is Lúthien, a female druid beeing a night elve. Playing WoW, you have to choose in what way you want to play. There are roleplay servers and normal server. People playing on the roleplay server realy want to play the game as a true roleplay. First, all the avatars have names that follows naming conventions. You can’t name an elvish “Tungdil Steinbrecher” because that would be a typical name of a dwarve. Your behaviour should match your race too. But you’re alway free how to interpret your own character in the game ;) In my case I’m playing a female fashionably druid, roaming forests and helping low skilled heros when they get attacked by wild animals. I’m able to transform into a fast panther, powerful bear, roaming gepard and of course a powerful Moonkin, a strange human beeing, looking like a bear going on two foots with deer antlers in an owl dress. Can you imagine? It looks quite funny ^^

I played the first two versions of Guildwars too. So I can compare them right. In Guildwars you have a very good story that is linear. In WoW it’s not that linear. You have quests and sometimes some quests that are based on other ones. You realy can play without to worry about the big story behind. It’s more a story beside the game you get by reading books you get in the game or on the internet and booklets. I would apreciate if the story in WoW would be better integrated like in Guildwars. On the other hand, you are free to create your own story and that opens lots more possibilities. Sometimes, some guilds post on their websites messages about attacking a town of another party. That’s great imagine an army of h
Humans, Elves, Dwarves and Gnomes attacking a town of Orks.

World of Warcraft is really a great game. You can enjoy it alone. But entering a guild the game gets a new dimension of social gaming. Next weekend we have a guild meeting where the guild leader is changing my status as invited guest of the guild to a real member of it. Well, the location isn’t known be the members, only by the leader. We’ll getting the location somewhere in the World Of Warcraft early enough. I think I should prepare a little speech on getting a member and getting into the hole conspiracy of the guild and buy some beer in the main city Ironforge of the dwarves and some fireworks from the gnomes from Gnomeregan to celebrate it with the other guild members.
So, if you find a group of drunk avatars, that’s my guild ;)

Wikigraph – A Graph-Browser for Wikipedia

December 3rd, 2006 by Amancio Bouza No comments »
Wikigraph

Wikigraph

Based on the graph-browser JSaurus, I implemented Wikigraph, a simple graph-based visualization of the content of Wikipedia.org. Every node in the graph represents a topic. Topics are connected to each other if and only if one topic refers to the other one. The references are take from the meta tag keywords of the topic’s website.

But what is the advantage of the graph-browser Wikigraph? Well, first of all, it is possible to create a knowledge map of wikipedia‘s content. The knowledge map shows which topics are related to other topics. You have a breath overview about related topics. In other words you see the context of a selected topic.
As an example you can search for Informatics. As result you get Informatics and some linked topics (i.e., Mathematics, Information, Information System). You get the related topics to the related topics to. With all the relations you the context of the informatics.
The context can support you understanding a specific topic rather to read its content twice.

The main advantage is that you don’t have to find the right keyword to find the specific topic anymore. You search by context and not by keyword. You only have to search for a topic of the same context. You get a map of topics of the same context and you can selected the right one or browse further. So, Wikigraph provides not only searching by keyword, it provides searching by browsing too.

Evaluation of graph drawing algorithms

November 30th, 2006 by Amancio Bouza No comments »

A readable graph respects aesthetic criteria of syntactic validity, perceptual organisation and aesthetic optimality as proposed by Kosak et al. in 1994. Some algorithms focus on minimising edge crossing whilst other focus on other aesthetic criteria.
Spring-embedded models and its variants fits aesthetic criteria. But which of them is the best?
First of all you have to define what best means. It depends on the scenario where the graph is used. Do you need a symmetric graph with lots of edge crossing, or to you need a graph to simulate molecular interactions? You have to give the answer! In this evaluation here best fits the following criteria:

  1. Performance: Short calculation time of node placement
  2. Scalability
  3. Aesthetic criteria: Small number of edge crossing, optimal organisation of vertices.

I’m evaluating the upper criterias for an implementation in Javascript. Javascript is highly sensible on calculation complexity. Lots of calculations and look-ups break down the speed very fast. Short calculation time is very important.

As already mentioned spring-embeded models fits aesthetic criteria very well. Using spring embeded models fits the 3. criteria of aesthetics. Let’s evaluate the algorithms in respect criteria 1 and 2.

The Spring Model

The spring model was originally proposed by Eades (1984). The concept is easy. For all connected vertices a attractive force fa(d) is calculated. A repulsive force fr(d) is calculated among all nodes not connected.

  • fa(d) = ka * log(d)
  • fr(d) = kr / d2

d is the current distance between two nodes and ka and kr are constants.
Let be n the number of nodes and r the number of relations.
According to the implementation with Javascript a division is as expensive as a multiplication. But the calculation of a logarithm is 4 times more expensive then a multiplication or a division. The calculation time is:

(n * (1+1))2+ r * (1 + 4) = 4*n2 + 5*r

The complexity is O(n2) because the repulsive force is calculated among all nodes.

The spring model is symmetric. It doesn’t try to reduce edge crossing. Reading those graphs could be problematic.

Force-directed Placement

The force-directed placement has been proposed by Fruchterman and Reingold (1991). This algorithm fits the criteria of minimised edge crossing. The spring model does not. This algorithm is based consists of attractive repulsive forces among nods. As in the spring model, attractive forces fa are calculated between two connected nodes and repulsive forces fr among all nodes.

  • fa(d) = d2 / k
  • fr(d) = -k2 / d

d is the distance between two nodes and k is the optimal distance betweent two nodes. k is calculated by the number of nodes and the drawing area.

Let be n the number of nodes and r the number of relations.
According to the implementation with Javascript a division is as expensive as a multiplication. But the calculation of a logarithm is 4 times more expensive then a multiplication or a division. The calculation time is:

(n * (1+1))2 + r * (1 + 1) = 4*n2 + 2*r

The complexity is O(n2) because the repulsive force is calculated among all nodes.
The force directed placement is better then the spring model because it fits better the criteria 3 about minimising edge crossing and has lower calculation complexity in calculating attractive forces. Force-directed placement strikes the spring model in performance issues too (criteria 1);

Local Minimum and Simulated Annealing

Both try to organise nodes and relations to minimise the energy of forces between nodes. The display results are the best, but is extremely expensive in the meaning of calculation complexity that is at least O(n2).
I implemented the algorithm of local minimum with minimising the energy state. The energy was calculated by the functions of the force-directed-graph. My experience with the local minimum is, that the nodes need lot more time to organise them self.
Simulated annealing is a very interesting concept. The difference between the this and other spring model based algorithm is, that you cool down the temperature (i.e., decrease ability of movement) on every step. You’ll get a stable system very fast depending on the amount of temperature decrease. The force-directed placement can be seen as a special version of simulated annealing, but without a temperature decrease. Depending on the implementation of simulated annealing, it is possible to get a runtime of O(n). Imagine a stable system with nodes. You add one with high kinetic energy. You only have to calculate the energies for the new nodes with all the other nodes. But doing this, you’ll get a bad organised system of nodes and relations.

Conclusion

I think the best graph drawing algorithm is a combination of the force-directed placement in combination with local minimum or simulated annealing. With the force-directed placement you get a good organised system in a short time. To reduce cpu time a change of algorithm is need, because it doesn’t make sense to move nodes only a little and calculate so much. I think local minimum or simulated annealing is a better choice for the calculation at the end because they are going to filter nodes from calculation. But all spring-embedded models aren’t scalable of cause the calculation time complexity of O(n2). We all have to live with it.

Introducing Jsaurus

November 23rd, 2006 by Amancio Bouza No comments »

Jsaurus is a visualization tool to display a thesaurus with its nodes and relations in between. Jsaurus is written in JavaScript and DHTML. The goal of Jsaurus is to provide a piece of softare that manages every type of thesaurus and manages the visualization and behavior of nodes and relations too.
Jsaurus is build with the MVC design pattern. This pattern separates the model (data), the visualization and the control of the model from each other and defines interfaces to communicate between each layer. The advantages is the creation of more transparency and each layer can easy replaced by a new version or a complitely other one. In the Jsaurus case, the model is the thesaurus, the controller and eventhandler build the control layer and the visualization layer consists of a particle system and a renderer.

Below you can see an example of a thesaurus with 5 nodes and wihthout any relations. The particle system calculates the behavior of the nodes in the viszalization. The current particle system gives a kind of gravitation to each node. It calculates the force of gravitation and infers the velocity and position of each node. The example below shows remembers to a 3D planet system.

I’m developing Jsaurus for my diploma thesis about a Graph Based Knowledge Browser for a CMS. I’m looking forward to visualize knowledge maps for enterprises using Microsoft Sharepoint Portal Server. But I’m still in the beginning of my diploma thesis. It will end in 6 months from now on.

Student project about Metadata Management ended with great success

October 6th, 2006 by Amancio Bouza No comments »

My student project about Metadata-Management at the Zürcher Kantonalbank (ZKB) was a big success. The goals were to implement a prototype of an easy-to-use application for browsing, searching and navigating through meta data, defining processes how people have to updated and import meta data, defining a data model where meta data of every business area can inserted and to evaluate some more questions.
I invented a new type of visualization for meta data of an operational datat store or Data-Warehouse.
Well, people were quite impressed being presented such a visualization, that abstracts from technical elements and elements from the business areas. With the developed browser you can see the relations between technical elements and elements from the business area. With this prototype it’s easy to make a complete impact analysis, making reports, see how elements are related to each other, and so on.
Unfortunately I can’t publish a screenshot of the prototype or go more deeper into details because the results of my student project is only for ZKB’s internal.

The duration of this student project was 12 weeks. In this time a met a lot of friendly and competent people at the ZKB. They all were nicely and friendly. I feel sadly to stop working there, but I have to finish my study and write my diploma thesis about an Implementation of a Graph Based Knowledge Browser for a CMS. With this implementation it is possible to measure the amount of knowledge transfer from one company to another e.g. in a outsourcing process.
In this student project I learned a lot of the factor humans. At the university you learn to solve problems and invent and innovate new solutions. But the focus is set to the solution. But in the real life, you have to make people understand your solution, sensibilize people for the problem and the need for a solution. It’s not a problem, it’s a challenge!
I wrote quite a lot source code and documentation. Just to imagine how much I wrote in 12 Weeks, I’ll list them all:

  • over 14’000 lines of code
  • 119 pages of program documentation
  • 29 pages of user documentation
  • 25 pages of data model descriptions (tables, attributes)
  • 61 pages for the final paper
  • 11 presentations in different business areas of the banc

I can recommend the ZKB to everyone making a studyproject there. It’s a good company with very nice people.