Framework for building semantic networks

Mentor: Dennis Schetinin
Second mentor:
Level: Intermediate
Invited students: Anastasiya Ivanova
Students interested: Anastasiya Ivanova(very)

Create application with embedded semantic network for aggregating and managing data from different sources: (e.g.) eMail, "instant" messages, blogs (RSS), manually added "ToDo" items etc.

The user iterates through incoming messages, and add them to semantic network (see http://en.wikipedia.org/wiki/Semantic_network) establishing relations with already existing elements. There could be any type of items (topics, timestamps, tags, groups, etc., etc., etc. ) in semantic network allowing user to structure the incoming information the way (s)he wants, thereby turning "raw data" into knowledge. Some relations should be added automatically according to user-specified rules (for example, new messages could be automatically related to the source, author, acceptance timestamp and so on).

Some features:

  • user finds messages using semantic relations, not keywords
  • (for example) user does not need to remember where the messages he needs come from (was it a tweet, or email, or maybe ICQ message?), but "what it is related to"
  • the system is open for any kind of extensions (including dynamical things) being written in Smalltalk and working in Smalltalk environment
  • the relations between objects in semantic network can be "alive" objects having their own behavior (thanks Smalltalk again)


The project is supposed to be the first step towards creating framework for building semantic-networks-based data management systems and embedding them into custom applications. There is a heap of questions and research tasks (usability, search algorithms, automatic-classification algorithms, ) about applying semantic networks in real life. So the application is both an interesting and useful tool, and the material for wider research in the area of data- and knowledge management.

Some tasks and requirements

  • Accepting data from several (2 -- 3) sources (e.g. Twitter, eMail, ToDo items)
  • UI for iterating through incoming data (messages)
  • UI for processing incoming messages by relating them to items in
  • Extendable system of rules for automatic classifying incoming messages
  • Unified contact list (in terms of semantic network of course)
  • UI for navigating through items of semantic networks
  • UI for building search requests (and/or scripts)
  • Application should be implemented as a service with Web UI (using Seaside).

Benefits to the student

  • Learn how to use Web APIs (Twitter, POP3/IMAPS)
  • Learn various graph algorithms
  • Learn web programming
  • Usability aspects of UI development
  • Data management and knowledge management

Benefits to the community

  • Data management and knowledge representation are actual and promising topics with variety of applications in many (nearly all) spheres of IT.
  • Smalltalk programming environment can be improved by using semantic data describing relations between programming elements, tools, and infrastructure for better code/version/project management etc.
  • On the other hand using Smalltalk here promises a lot of benefits inherited from dynamic and open nature of the programming environment. So, both worlds would benefit.


Updated: 7.4.2010