This page changes often. You may therefore consult it several times to check whether more projects have been added. Note also that I am fluent in both French and English. So you may choose either languages to carry out your project.

Cette page sera dynamique. Vous devriez par conséquent la consulter souvent pour verifier si d'autres projets ont été ajoutés. Je parle à la fois le Français et l'Anglais. Ainsi donc, vous pouvez choisir l'une de ces deux langues pour votre projet.
  1. Requirements Driven Data Warehousing: A preliminary Proof-of-Concept Study

    Posted: 11/06/09
    Number of people involved: several (at least 3)
    Status: (Projects 1 and 2 are taken)

    Project summary

    This project, involving the Universities of British Columbia, Ottawa, and Toronto as well as SAP/Business Objects, aims at conducting a proof-of-concept study of a requirements-driven data warehouse construction. It proposes a first step towards a new long term vision: a top-down data warehousing design-time as well as a run-time process where (mostly non-technical) users need only to focus on the declarative specification of application requirements at design-time, and a tool will (semi)automatically generate and populate an underlying data warehouse at run-time. Two specific tasks to be solved are: first, design a conceptual integration modeling language for representing typical integration features such as data provenance, data access requirements for materialization, and mappings from the conceptual model to the underlying multidimensional model; second, build a prototype tool that uses models expressed in the conceptual integration model modeling language to drive the design and the population of a data warehouse. Expected results of this research will be a contribution to the Canadian Business Intelligence industry. Data warehousing is one of the cornerstones of the industry, so research advancing data warehousing will be crucial to the flagship Canadian software companies that currently lead the industry.

    Honors and graduate intensive projects

    Several tasks for honors projects or graduate intensive projects at the master level are available within this project:
    Project 1: Implement a GUI-based tool for designing integration models in a graphical CIM language (called Cube ER) that we are developing. Cube ER extends the classical Entity Relationship model to a graphical modeling language for data integration purposes.
    Projects 2: Cube ER will have an XML-like internal representation. This internal representation is an extension of Microsoft's EDM model (called Cube EDM) with multidimensional concepts. The tool will allow a designer to create graphical models of data integration artifacts at the conceptual level. Once a Cube ER model is created, the designer should be able to use the tool for generating a Cube EDM counterpart. The tool must also allow the generation of a Cube ER visualization, given a Cube EDM model.
    Projects 3: Implement an incremental version of the Cube EDM generation and visualization tool. Here, the tool must be able to add changes to the models without regenerating the latter from scratch.

    Students will use and extends an existing Eclipse-based tool. The implementation will be ported later to the .NET environment. Any one willing to work on these exciting and real-world projects must be fluent in the following environments and technologies: Eclipse or .NET, C#, and Java. (S)He also must display strong academical credentials.

    Notes :
    (1) The tool's Web site is at the following link: http://jucmnav.softwareengineering.ca/twiki/bin/view/ProjetSEG/WebHome
    (2) These projects are also available to students working with Dr. R. Pottinger at UBC; they are a joint work with Dr. Pottinger.

  2. Improving the Distributed Search Structure of P2P Networks

    Number of people involved: several (at least 2)
    Status: Done

    Architectures of traditional distributed systems follow the client-server paradigm. Here, a central server services many clients, and the server and clients have different responsabilities. In the last three years, a number of Internet applications such as Naptster, Gnutella, and Sethi@home have popularized another paradigm of networking which is based on a peer-to-peer (P2P) architecure. In a P2P architecture, each node -- peer -- acts both as server and client as well; that is why peers are sometimes called servents. Peers cooperate to provide a service, with as few an intervention as possible from central servers.

    Gnutella is the best example of what is called a pure P2P architecture, where peers do not rely on an centralized indexing mechanism to perform search. Peers broadcast research requests over the network. This however generates a huge amount of traffic over the P2P network. Several projects have been initiated to tackle the issue of reducing traffic over P2P networks. The main idea used to reach this goal is to find appropriate distributed datastructures for performing search over the network. For example, one such project (CHORD) uses distributed hasch tables. Another one (P-Grid) uses virtual search trees. The perceived advantages of using these improved datastructures is to provide high scalability, fast search, efficient network construction, self-configuration of the network, etc.

    The goal of these honours projects is to use an well-chosen distributed search datastructure in one of the existing P2P network architectures. Your task will first involve finding such a datastructure. Then you will have to design an appropriate protocol for it. Your design will merely improve on one of the existing search structures (trees, hasching, Knowledge base). Finally, you will implement it in a simulated environment. Of course you will not implement the whole simulator, but only change an existing simulator in some critical parts.

    A pointer to the literature needed is: http://www.cs.toronto.edu/~kiringai/p2p-db.html

  3. Programming Relational Active Rules

    Number of people involved: several (at least 2)
    Status: Done

    Active relational databases augment traditional database technology with the capability of expressing reactive behavior. Normally, in traditional relational databases, a user captures information about a domain by giving a set of tables, also called relations. Those relations constitute a database which can be queried, updated, deleted, etc. Once data is stored, the only way to change it is through a user or an application program. In active relational databases, however, stored data can change automatically whenever some events occur in the database and some conditions are met. Such events and conditions are specified in a rule program that the database system will execute to monitor events that occur in the database. In commercial products such as DB2, Oracle, etc, such rules are called triggers.

    The goal of these honours projects is to write a realistic trigger program that expresses the reative behavior of an interesting application domain. The programs will be written following an experimental development methothology called IDEA that is documented in a book that you will borrow from me. Your task will be to pick one of several domains that I will point out to you. Then you will apply the IDEA methodology to it. The outcome of this process will be a trigger program written in a SQL language of your choice that is supported by the IDEA tools and concepts. The IDEA tools support current versions of SQL such as Oracle, DB2, etc.

  4. Programming Robotics Agents in GOLOG

    Number of people involved: several (at most 3)
    Status: Done

    Robotics is a well-known and fascinating research area in Artificial Intelligence. A robotics system usually comprises both hardware and software components. Hardware components are taken care of by computer engineers. From the Computer Science point of view, research in robotics deals with two main set of tasks. The first one amounts to designing algorithms for the so-called low-level tasks of robot motion, obstacle avoidance, path planing, etc. The second set of tasks takes care of high-level issues that generally involve achieving a goal (e.g. delivering mails to all people in an office environment, cleaning a surface, winning a soccer game, ...). Usually, low-level taks are better programmed in fourth-generation languages like C, C++, and high-level tasks are better programmed in fifth-generation programming languages such as Prolog or Lisp. A common problem that arises is therefore that of bridging the gap between high-level modules programmed for instance in Prolog, and low-level modules programmed in, let's say, C.

    Your task in this project is to program a robotics agent in a special-purpose Prolog-like language called GOLOG, and couple that agent to some low-level robotics software. The project may just involve a simulated robotics environment. I will provide material about GOLOG and the simulated robotics environment.

  5. Several other Projects to Come !

    Many will be related to Bssiness Intelligence and may involve internships at either IBM or SAP. You may also contact me to talk about a project topic of your own that fits into my research areas.