The Source for Java Technology Collaboration


Home | Changes | Index | Search | Go

NaturalLanguageControl

Introduction

Ever wondered where the window you were using to compose the mail went, in which desktop it was or is it closed ? Ever wished you had an apprentice to manage your desktop, who understands your commands like close all editors, log me out, start some song and executes them on the desktop just as you would have done it. Here we bring Next generation Desktop closer to the Next generation User Interaction, where the desktop understands the user as a real friend.

Launching the NLC

Click on the NLC icon on the taskbar. This will launch NLC in background. System can become slow for 2-3 seconds as NLC is loading the parser in the memory. Now whenever you want to type the command in natural language enter F12. F12 is the hotkey for brining in the mascot that takes the input. You should see a text panel with the message Please enter your command in natural language. Focus on it and start typing your command. Press Enter. You should see the desired action.

Grammar

Engine understands imperative sentences in Natural Language. An imperative sentence is a sentence that instructs or commands. For example, "go there", "open the window", "close all windows", etc. You can even simply say "hide", "close" or directly the application "helper", "game", etc.

Some Sample Commands

  • helper This launches the Lg3DHelp? application.
  • hide the helper This minimizes the Lg3DHelper? application.
  • show the helper This again brings back the same Lg3DHelper? window.
  • open another helper This launches another Lg3DHelp? application.
  • hide This hides the focussed helper.
  • close all helpers*/*close all windows This will close both the helper applications.

Knowledge

NLC gets the knowledge (helper means Lg3DHelp?), (game means the TableTennis? game) etc from the config files nlc/conf/apps.xml or nlc/conf/base.xml. Any unknown application will be recognized just as application, unless some entries about it are added to the config file. Take for example the table tennis application. If we dont define anything in the config file about this application. Following will be the behavior.
  • Launch Tabletennis game by clicking on its icon.
  • Type command hide the window ---> game is hidden.
  • Type command focus on game ----> NOTHING HAPPENS
This is because NLC does not know what a game is.

Now create following entries in base.xml and apps.xml. In base.xml

<entity>
   <name>game</name>
   <parent>application</parent>
   <synonyms>
      <synonym>game</synonym>
      <synonym>play</synonym>
      <synonym>fun</synonym>
   </synonyms>
</entity>
In apps.xml
<application>
   <name>Table Tennis</name>
   <entity>game</entity>
   <command>java fullclassName</command>
   <synonyms>
      <synonym>table</synonym>
      <synonym>tennis</synonym>
      <synonym>tt</synonym>
   </synonyms>
</application>
Now try the command I want to play some game. It will launch the table tennis game.

Topic NaturalLanguageControl . { Edit | Ref-By | Printable | Diffs r1 | More }
 XML java.net RSS

Revision r1 - 27 Aug 2005 - 18:05:00 - Main.harshatcse
Parents: WebHome > ProjectLookingGlass