Initial thoughts…

I’ve been tyring to come up with some ideas about what areas to research for my PhD. I’ve given up my quest to try and create games using Semantic Web technologies. Instead, I plan to follow my current work practices and look at problems in web application development: As the starting point, I am particularly interested in how to build rich internet applications or rich web clients like those made by Google, flickr, etc.

For my PhD, I originally proposed to look at how games could be made using Semantic Web technologies (RDF(S) or OWL). Althought I still think it is quite a nobel idea, the reason for not following the games and Semantic Web line of enquiry include:

  • Semamtic Web technologies do not seem to be taking off in a big way (Timbl would say, “you don’t get it“, but I think I do). I will still look at the Semantic Web in what I am researching (I will discuss in future entries in relation to microformats), but it will not make it the main focus of my research.
  • Judging from the simple examples discussed in Robert Colomb‘s forthcoming book on the Semantic Web, producing ontologies for games would be too massive a task. The problem is describing all the little rules and conditions that would take place in a game: basically it’s too hard and time consuming. I’m not going to go into it here as I am not interested in the problem. However, I think the problem might be able to be approached with the right visual tools. But again, not my problem 🙂
  • As a carreer, I don’t really want to go into games development (or games in general). Sure, I like playing games; but I am not particularly good at drawing or design. Also, I’m no longer a 3D guy, nor have I really ever made a computer game… I can talk about some of the theory behind games (game structures, graphic communications, narrative structure, etc…), but I don’t feel comfortable persuing that area. It’s fun, but it’s just not for me. There are probably more reasons, but I can’t think of them right now.

Instead of persuing games and Semantic Web, I will stick to my roots: Web Application Development! Why? Well…

  1. I’ve been doing web app development for about eight years now (I must be getting old!), so I guess (practically speaking) it’s what I know most about. Besides, it pays the bills.
  2. I quite enjoy the problems that I encounter through web development: database design, user requirements, interface requirements, development strategies, standards adherence, cross-browser issues… so these problems are enough (I hope) to keep me interested for the next three years (for those who don’t know, that is the time needed to complete a PhD).
  3. I am interested in learning ways of creating dynamic user interfaces. That is not to say that I am any good at creating user interfaces, but through practice hopefully I’ll get better at it.
  4. I’m quite interested in the technical challenges that Web Accessability and usability create.
  5. I’m quite interested in design patterns, both for programming and for multimodal user interfaces… I have to admit, I am a recent convert of visual design/interface patterns (but not yet a full believer! my semiotic roots influece my thinking).
  6. I’m quite interested in the strategies used to build next-generation web applications. By next-generation web applications I mean rich internet applications (RIA), such as the one I am using to create this blog (wordpress), Google maps, Google Calendar, etc. These applications challange what most of web developers would consider a traditional web development approach: ie. developing for the standard client-server model where a data from a webpage is posted to a server, and a response page is sent back to the user by the server. In RIAs, the application is designed to continously send data to and from the server via an brokering (XMLHttpRequest) object. To the web development community, the coordination of asynchronous brokering of server requests without needing to reload a web page has become known as AJAX (Asynchronous JavaScript And XML – see also wikipedia definition of AJAX). Very sophisticated user interfaces have already been built using technologies such as AJAX (see those applications listed above). And, as a result, web developmers have had to think up new strategies for how to design the both the client-side and server-side of web applicaitons.

From a research standpoint, this last point (6) is of greatest interest to me: how can I, as a web developer (and not a computer scientist) create one of these new applications? The next question is what is driving the development of these new web applications?

For a reseach path, I need to start by defining these new web applications: what are they? why are they? where are they? how do I build one? and how is this new development approach different to other development approaches… refining what and how I am going look at will be the focus of my next few blog entries (this one is getting a bit long!).