Development of an agent-based information push mechanism


Title of the project


Development of an agent-based information push mechanism


Abstract of the project


Information push mechanism is a way of pushing the information to the user who would be interested in that. This technique is widely used in web-site advertising (showing the advertisements that a user with a certain profile would be interested in, yahoo! sites for example). This technique can also be applied in other areas wherein a user with a known profile interacts with an information system (such as a website). Based on the profile and on the history of activities of the user, a behavioural profile of that user could be determined and this behavioural profile will help the information push system in determining the content that the particular user would like to view.


This project is aimed at developing an agent-based information push mechanism. In this system, an agent program would be montioring the user’s activities (like what he types on a word document, for example) and then propose to get him some help to perform his activity in a better and easier way. This could be something like searching a repository for the documents that would help the user in preparing his current document and then providing him those documents.


Instead of the user searching for help on his activity, the agent takes the initiative of offering help to the user and so this comes under the information push systems.




Generic Technlogy keywords


Algorithm, Programming


Specific Technology keywords


C, C++, Java, C-Sharp


Project type keywords


Statistics, User Interface


Functional components of the project


There are many ways in which information can be pushed to the user. And there are many criteria on which the information push can be activated. It may be based on his details (like his age, location, education etc). In this case, the required details of that person should be available to the information-push system. Or, it may be based on his activities (like what he is currently typing, what he is currently browsing etc). Or it may be based on a combination of the user details and user activities. Specification of this, specifies the scope of the system. Given below are the functional components of a system that works based on the user activities. However, any other criteria that you find useful can be incorporated in this. And, in places where the description of a functionality is not adequate, you can make appropriate assumptions and proceed.


  1. Activity Detector – This component detects the activities of the user to find out if he is doing the activity of interest. For example, this could be checking periodically to see if the user had opened a word document.


  1. Activity Monitor – This component monitors the activity of the user once it is detected that the user is doing the activity of interest. For example, this could be looking for some key words in the word document that the user is editing (Some hints on how this kind of a component can be implemented is given in the References section of this document). If the user is typing a key word several times, you may want to offer help on that topic to the user through a wizard.


  1. Help Wizard – Once a decision to offer help to the user is made, this help wizard becomes active. This may prompt the user if he needs any help on a particular topic. This will also have some disable facilities, incase the person does not want to use this.


  1. Search Engine – Once the user decides to have some help on a particular topic, this component will search some repository (it may be the Internet also) and comes up with a set of search results.


  1. Results Display – This component will consolidate the search results and provide them in a neat format for the user. Facilities to search within the results or to pursue one particular search result further should be available.



Steps to start-off the project


The following steps will be helpful to start off the project.


  1. Study and be comfortable with information push systems in general and technologies such as C-Sharp/Java/C++/HTML. Some links to these technologies are given in the ‘Guidelines and References’ section of this document


  1. Decide on the scope of the system. Details like how exactly the activities will be detected, what exact user activities will trigger the help wizard, what will be the repository that will be used to get help (this could be a database of documents prepared for this project or any other such existing database or even the Internet), what will be the key words on which help will be made available etc should be decided clearly.


  1. If it is going to be a repository that is going to be created exclusively for this project (like collection of important articles on unix,windows,C etc), steps should be taken to create it (by getting articles from the web etc).


  1. Design and implement the functional components listed in the previous section one by one. Some components can be developed simultaneously (Activity Detector and Search Engine, for example).




Hardware requirements




Alternatives (If available)


PC with 2 GB hard-disk and 256 MB RAM






Software requirements




Alternatives (If available)


Windows 95/98/XP with MS-office

Not Applicable


C-Sharp Development Environment

Java Development Enviroment





Manpower requirements


2 to 3 students can complete this in 4 – 6 months if they work fulltime on it.


Milestones and Timelines



Milestone Name

Milestone Description





Week no. 

from the start

of the project





Field study

Get comfortable with the push technologies, their kinds, their applications and the state of the art.


A presentation on push technologies should be made at the end of this milestone to display the understanding.


System Specification

Complete specification of the system (with appropriate assumptions) including the kind of push mechanism, the criteria for information-push, the way in which help would be offered etc should be written as a document. And a presentation on that be made.


When proposing the specification, it should be kept in mind that some idea of how to implement the system is also there.


Technology familiarization

Understanding of the technology needed to implement the project.


Coding-level details are not needed at this stage. However, it is good to get a high level idea of how the implementation will look like.


Repository creation

If needed, the repository should be created by putting together relevant documents.


This work can continue in parallel till the completion of the project and need not end with this milestone. This milestone is just to initiate the work.


Implementation – Phase 1

Implementation of Activity Detector and Activity Monitor components


These components may simultaneously be tested also. In case of implementation issues that are impossible to solve, the detection/monitoring strategy can be changed slightly. For example, instead of monitoring for the keywords as the user is typing his document, you can look for the keywords in the document everytime it is saved.


Implementation – Phase 2

Implementation of Help wizard, Search Engine and Results Display components


These are standard components in the Windows and in the Internet sites today. So, help on implementation of these is easy to get in the Internet through discussion forums etc.


Integration Testing

The components should be integrated and testing be done.


Another 2 weeks should be there to handle any issues found during testing of the system.


Final Review

Issues found during the previous milestone are fixed and the system is ready for the final review.


After the final review, a demo can be arranged.


Guidelines and References


  • IBM’s research papers in Agent technologies.


  • Microsoft Web-sites of technologies used


  • Exclusive source of all latest Java information

Tags :
Your rating: None