Internship 2008


Arpit Nandan Garg


Artificial intelligence, agents and reasoning systems allow computers to perform automatically many tasks on our behalf. Policies are statements that define the behavior of systems, specifying how to react under different conditions, therefore giving autonomous agents the capability of interacting and even negotiating with other entities without needing user intervention. Policies are typically distributed and described using logic languages, therefore involving policy reasoning and therefore dealing with explicit and implicit knowledge.

However, although rules of the form "if ... then ... else ..." are typically used in our daily life, it is typically difficult for regular users to

  1. Specify them in order to meet their wishes
  2. Understand them
  3. Keep an overview of them

Furthermore, expressive policies are typically more complicated than simple if-then-else rules, therefore complicating a bit more the situation.

L3S has developed a framework for security and privacy called Protune that makes use of policies, defining conditions under which actions can be performed and information (e.g., credentials) can be released. Such a framework is entirely developed in Java and allows different systems (e.g., browsers, web servers, P2P clients, desktop computers, etc.) to enhance authorization and access control. In that context, it is really important that users understand what their policies specify and are able to create, modify, personalize them. Therefore, it is needed to provide them with a policy management tool that helps them on these tasks. Such tool should be implemented using the Eclipse Rich Client platform and it should (possibly) benefit from existing work in the areas of::

  • use of ontologies and reasoning
  • application of personalization techniques
  • analysis of machine learning paradigms (some policies can be learnt from history of the user or the user can be classified into known groups in order to find relevant policies for him)
  • human-computer interaction
  • software engineering techniques
General Prerequisites
  • Good knowledge of Java (as programming language)
  • Knowledge of how to develop Rich Client Platform applications
  • Knowledge of logic programming. In particular, good knowledge of Prolog
    would suffice, since our policies are very similar to Prolog
Policy Driven Negotiation
Rich Client Platform Applications


Make one demo application. The demo should have 2 perspectives:

  • Perspective 1 shows 4 views (left, main editor, right and bottom)
    • Left: shows a filesystem tree with only folders and files with extension ".txt" or ".jpg". Both kind of types should be shown different (e.g., with color, cursive, font). Folders can be expanded or collapsed.
    • Main editor: when double clicking on a file in the left view, if the file is of type txt, then open a text editor. If it is a jpg file, then open an image view editor.
    • Right: shows metadata of the file opened (e.g., type, name, size, creation date, etc.)
    • Bottom: shows a trace (debugging messages) of what is happening.
      • You can use log4j or internal mechanisms of Eclipse, but not the java System.out.println
  • Perspective 2 shows also 4 views (left, main editor, right and bottom)
    • Left: shows a vertical list (e.g., a tree with only one level) with a set of keywords read from a given file (e.g., specified as configuration)
    • Main editor: keywords from the left panel can be draw and dropped into this editor. Right clicking on a work in the editor shows a context menu with the option "create link". A line then appeas connected to the keyword and it is possible to click on another keyword and therefore create a link between both keywords.
      • When clicking on a keyword on the left view, the selected keyword should be highlighted (with color, font, etc.) in the editor.
      • It should be possible to drag and drop the keywords in the editor (that is organizing them in the space) without loosing the links
      • You can use graphical libraries such as jung or jgraph. Check first if there is any incompatibility with Eclipse or Eclipse based applications.
    • Right: shows info of the selected keywords in the editor (e.g., number of links and to which keywords is linked)
    • Bottom: shows a trace, as in perspective 1

This demo should

  • Run on both windows and linux
  • Be deployed without requiring the Eclipse platform to run
More reading
  Semantic Web:

Feel free to ask any quesion that arise from the reading of such papers.



Ceate a simple java application that writes data (e.g., about yourself, your name, age, interests, etc.) into an RDF file and then is also able to retrieve it and show it. The idea is just to know about the Jena API so to make it simpler, it can be a simple console application.

Planning Overview

Before arrival in May
  • Perform the taks in above sections
    • Policy Driven Negotiation
    • Rich Client Platform Applications
    • More reading
  • Output: RCP demo application



Last update on 08-Dec-2007 4:10 PM Home