B669: Personalized Data Mapping


To achieve its goals, the information manager must have five crucial properties:

* It must personalize itself to its user.
* It must be able to handle large masses of data.
* It must map data into a directly-manipulable visual space.
* It must autonomously mine relevant data across networks.
* It must be easy to understand and easy to extend.

Consequently, it must be smart, capacious, visual, networked, well-documented, and well-designed. So we need expertise in adaptivity, user modeling, object-oriented databases, interfaces, networking, documentation, and software architecture.

It must also have a cool website to present itself to the world. The more cutting-edge and just plain hip the website is, the better for the project as a whole. The website itself will also eventually serve as a demonstration of the whole idea of adaptively mapping information into a manipulable space---both the linkage page and the site map page, for example, should eventually become such demos. So we need webdevelopers as well.

Project Teams

The Architecture team is responsible for coordinating the design of the system and for coordinating the efforts of the other teams. Ideally, to be on this team you should be strong in object-oriented thinking, design patterns, and software engineering; you should be familiar with terms like the strategy pattern, the observer pattern, the proxy pattern, the composite pattern, the decorator pattern, concurrent programming, and UML.

The Adaptivity team is responsible for building and adding smarts to the page-analysis and page-classification parts of the program. Ideally, to be in this team you should have experience with object-oriented or very large databases and with programming at least one of genetic algorithms, classifier systems, neural networks (especially Kohonen-style self-organizing maps), blackboard systems (especially Hearsay II), expert systems, case-based reasoning, or the more traditional decision-theoretic machine learning schemes like ID3, CL5, and so on.

The Modeling team is responsible for building an internal model of the user's preferences and predilections based largely on the user's actions alone. Ideally, to be in this team you should have experience with AI techniques (see above), user models, interface design, and statistics.

The Interfaces team is responsible for producing the coolest interfaces possible. Ideally, to be in this team you should either be an artist or designer with a working knowledge of programs like Photoshop, Pagemaker, Wavefront, Director, QuickTime VR, Shockwave, Flash 3, and so on, or you should be a strong Java programmer with knowledge of graphics, VRML 2.0, VR, Java 1.2, Java 2d, Java 3d, Swing, and so on; you should be familiar with terms like B-Spline, OpenGL, the MVC and MVP patterns, AWT, Swing, Beans, and so on.

The Networking team is responsible for producing a proxy server version of the program and for other independent agents running inside the program like smart mail and news handlers, chat servers, and remote web annotators. Ideally, to be in this team you should know the meaning of the terms: proxy, port, socket, Aglet, DNS, BIND, RMI, NNTP, SMTP, Sendmail, SLIP, PPP, RFC 822 parsing, TCP/IP, CGI, HTTP 1.1, and so on,

The Webdevelopment team is responsible for adding to and updating the website with DHTML, advanced search and navigation aids, web annotation, and collaborative software (Hypernews, chatbots, WebGlimpse, etc) and producing a demo of the program runnable on the website itself. Ideally, to be in this team you should have experience with cutting-edge cross-browser Javascript and HTML 4.0, CSS, XML, XSL, DSSL, and so on, as well as some design experience (a la David Siegel's books and articles) or artistic sensibilities.