. Search the site
FRDCSA | internal codebases | Verber

Verber

Architecture Diagram: GIF

Jump to: Project Description | Capabilities

Project Description

Overview:

According to the U.S. Army Survival Manual, it is necessary to develop a "pattern of survival". People do this with various degrees of success. Software that addresses these issues has real world applicability.

Advances in open source temporal planning technology make possible the creation of many useful real world planning domains. We demonstrate one such domain which necessarily utilizes many of the features present in PDDL2.2. This includes numeric quantities, durative actions, and derived predicates.

By leveraging this planning software, and integrating this planning domain with a dialog and execution manager agent using open source speech recognition and text to speech tools, we demonstrate an effective open source tool for time management and planning.

Example:

Here is the modest first (anonymized) plan generated by verber for buying groceries. It was mainly to serve two needs, to get integration with other modules smoothly, and to help me get to the store. It uses actual bus data generated by the busroute verber module. I am working on developing query planning domains, to plan the generation of sub-domains from modules as needed. The intention is to increase the coverage of the domain to such an extent that virtually all tasks in day to day life are completely scheduled.

      Plan computed:
      Time: (ACTION) [action Duration; action Cost]
      19.2500: (RIDEBUS USER BUS-71D-51 CULMORE-AND-DERRY HELMSHIRE-AND-BROOKS) [D:0.0000; C:1.0000]
      19.2500: (BUYGROCERIES USER FORBES-AND-MURRAY) [D:1.0000; C:1.0000]
      20.2500: (RIDEBUS USER BUS-71D-52 HELMSHIRE-AND-BROOKS CULMORE-AND-DERRY) [D:0.0000; C:1.0000]
    

Here is an ancient plan.

      Plan computed:
      Time: (ACTION) [action Duration; action Cost]
      0.0000: (MOVE ANDY CS-LOUNGE DOHERTY-LOCKER-161) [D:0.1500; C:2.0000]
      0.1500: (PICK-UP ANDY LAUNDRY DOHERTY-LOCKER-161) [D:0.1000; C:1.0000]
      0.2500: (MOVE ANDY DOHERTY-LOCKER-161 FORBES-AND-CHESTERFIELD) [D:0.1500; C:2.0000]
      0.4000: (SET-DOWN ANDY LAUNDRY FORBES-AND-CHESTERFIELD) [D:0.1000; C:1.0000]
      0.5000: (WASH-LAUNDRY ANDY LAUNDRY FORBES-AVE-LAUNDROMAT FORBES-AND-CHESTERFIELD) [D:2.0000; C:1.0000]
      2.5000: (MOVE ANDY FORBES-AND-CHESTERFIELD BAKER-LOCKER-18) [D:0.1500; C:2.0000]
      2.6500: (PICK-UP ANDY ELECTRIC-RAZOR BAKER-LOCKER-18) [D:0.1000; C:1.0000]
      2.7500: (PICK-UP ANDY TOWEL BAKER-LOCKER-18) [D:0.1000; C:1.0000]
      7.0000: (MOVE ANDY BAKER-LOCKER-18 UC-GYM) [D:0.1500; C:2.0000]
      7.1500: (SHOWER ANDY TOWEL UC-MENS-LOCKER-ROOM-SHOWER UC-GYM) [D:1.0000; C:1.0000]
      8.1500: (MOVE ANDY UC-GYM BAKER-LOCKER-18) [D:0.1500; C:2.0000]
      8.3000: (MOVE ANDY BAKER-LOCKER-18 DOHERTY-4201) [D:0.1500; C:2.0000]
      8.4500: (SET-DOWN ANDY ELECTRIC-RAZOR DOHERTY-4201) [D:0.1000; C:1.0000]
      8.5500: (CHARGE ELECTRIC-RAZOR OUTLET0 ANDY DOHERTY-4201) [D:12.0000; C:1.0000]
      20.5500: (PICK-UP ANDY ELECTRIC-RAZOR DOHERTY-4201) [D:0.1000; C:1.0000]
      20.6500: (MOVE ANDY DOHERTY-4201 FLAGSTAFF-HILL) [D:0.1500; C:2.0000]
      24.0000: (SHAVE ELECTRIC-RAZOR ANDY FLAGSTAFF-HILL) [D:0.2500; C:1.0000]
    

This software aims to improve our ability to reason with the objective consequeunces of our actions, which is of course necessary in order to act morally and ethically.

So the possiblity of incorporating plans which are very robust is something we should certainly do here since this improves the results and utility of any planning process, and is in a certain sense the entire reason we wish to do this.

The system is named after the late Senior Chess Master Richard verber, in the spirit illustrated by this quote:

"After losing a game to the master, Jermaine Bush realized that verber had controlled the outcome from the opening move. This was a mastery that the boy yearned for - both in his chess playing and in his life. Yeah, he thought, control!"

verber already incorporates many important features. It has support for plan cycles, launching code as a result of a planning action, domain microtheories, visualization, and an interactive execution monitor/dialog system. It is easy to incorporate other systems and considerations into verber, simply by specifying a verber module consisting of a pddl file and programmable actions. Ultimately, HTNs will be exported from pse to manager/verber and almost all activities will be guided using this combination, with monitoring sending results to RSR to measure goal accomplishment.

Capabilities

  • It would be possible to setup the interactive execution monitor to function at my desk. Should be able to work with both manager and verber.
  • verber has to deal with problems that got out of control, such as not emptying garbage, or things that have never been scheduled before.
  • manager or verber should have a "keep the airplane flying" mentality in terms of providing a certain service level.
  • Our planning system (verber) should have BDDs, for conformant planning or the like, and as new things happen, it should just change the current plan to that tree of the BDD so to speak.
  • Need to agentify manager and have him running. He will conduct verber.
  • Should verber really be file based?
  • Ultimately verber does not have the technology to handle everything, so what do we do then?
  • Ultimately, verber does not have the technology to handle everything, so what do we do then?
  • verber should learn what type of PDDL features get in the way of the systems.
  • In thinking it over, although I want to get verber going, I don't think it is as critical as getting something that determines what the critical path is, i.e., getting pse/score fully operational, to the point where we can assert that things have been done. I don't know that we need to get it to the point where it classifies new items, but that we can specifically annotate existing ones.
  • Develop a simplified version of verber
  • verber can use ARMS for plan recognition.
  • verber must use GIPO
  • One thing verber has difficulty with right now is responding to changing conditions. For instance, if I have a new job. I suppose, verber could simply model how to get to each particular/potential job, and procede to execute the plan. Another thing, is that most real life planning consists in anaylzing certain things, but past that there is not much more going on. So, getting the planning to work at this higher level is important.
  • Not necessarily the most productive use of our time. And also, verber should be doing that.
  • I'm starting to think verber should encase its stuff more in persitent objects than in anything else.
  • I hacked verber to death today.
  • I just realized something pretty cool - the problem I am having with verber is the same for the chess program.
  • After a little thinking I came up with the solution to verber, short term. The thing is it can't do any better than simply to check whether the plans work etc. Well now I just realized, if you use MBP you can. But still that's at execution phase. So there are two distinct steps - planning and execution. So for planning you have to compose the models. That can be taken care of by multiple means. Well, I'll just try to get it to work.
  • What I am doing here with verber makes more sense.
  • The priority system should be related both with verber, and...
  • This thing I've made for Sorcerer sure looks useful, it is being used in Sorcerer, broker, should be used in job-search, and could be used in busroute, clear, corpus, critic, cso, digilib, and verber.
  • That's something I'm not good at, so after get verber up and running, get RSR
  • Just now, right after having completely written this part of verber, it dawns on me that everything would be better written by using an EBNF, that way I can support arbitrary languages more easily, which is advantageous for the planner.
  • I can see now long chain events like Something happening -> verber -> event-log -> audience -> machiavelli -> audience -> (internet) -> etc.etc.etc.
  • I need a system that answers questions like: which systems are using "verber::Ext::PDDL"
  • audience needs to interface with verber, and specifically, do conformant planning over communication acts.
  • Definitely to come up with protocol section, to ensure that things happen as we want. Therefore, interface with verber there, for temporal planning, and also use Kissinger corpus.
  • When verber can't figure out how to contact someone, to tell them what to do, should contact me and ask for help.
  • Should come up with verber domains for the event.
  • Before interrupting me, if there is a time period in which verber can wait, verber should wait until I display a sign of idleness. That also means that if something is coming up, and verber detects uncharacteristic (hopefully) idleness, it can jump in ahead of time to comment.
  • audience needs to have a verber module for contacting people with respect to verifying agreement on various things.
  • I can't wait until verber is operational to the point where I do get a good schedule out.
  • The system can automatically determine which functions it needs to optimize based on which ones are taking too much time. For instance, if in query planning results in generating busroute tables, and busroute takes a long time to do this, verber's learning component would then determine that this is taking a long time and automatically add a goal to optimize that.
  • verber should compile domains before loading them, right?
  • verber could probably use vampire for something.
  • verber should test that the user is thinking by giving them intentionally erroneous plans from time to time.
  • It may be a good idea to release verber to the planning community.
  • verber should check the legality of actions against the law.
  • Just had an idea about how verber can make use of the rules - simply index according to which rules apply at the moment.
  • If I ever need to - here is a great survival plan. RSR, verber, audience, etc must be functioning. Bury all my important belongings except for necessities - as planned by verber. Then, having maybe one system hopefully a laptop, leave town with enough money and possibly a bike, and move to an area where there should be lots of low paying jobs (walmart, etc.)
  • Knowing how long events take should also help verber decide when to schedule the bus. if a personal assistant goes with the person, then it can pace them.
  • verber should do contingency planning - for instance if the person misses their bus or the bus doesn't come.
  • Need to add a usability verber module to gourmet - but have other usability aspects as well.
  • Related to verber.
  • Obviously verber is concerned with what is known as query planning in the creation of its domains - i.e. it can query then execute the submodules to provide information to it correctly.
  • Another idea is that verber::manager should take care to know all the different types of interfaces that the user may be interacting with it, and scale down to these. For instance, there is full computer, bidirection speech, TTS and keybrd entry, yes/no, all the way to none - just memory - etc,etc. verber should have special planning domains for which devices will be used at what times and how the plan data will be transferred.
  • It could use the verber-cyc-normalizer
  • It occurred to me just now it would not be hard to write a general purpose interface to verber which interacted with people in order to extract the correct PDDL description of events, etc, they wish to join.
  • Should set verber up to do that stuff like "verber -t laundry" to launch a task like doing launch. We need a task hierarchy from pse or something. There are certain tasks that are repeatable and we should usually have those in verber.
  • I should also get verber working to the point that it can do this stuff where I wake up, etc. That would be nice.
  • To get shelter I need to finish gourmet and verber.
  • In order to get verber operational we should begin executing basic actions, not entire plans. For instance it should schedule the laundry, by launching it with verber -w laundry, etc. Also, since we don't have the interactive system, it should have the detached operation mode working - i.e. where it informs you of the steps to do and then return.
  • Should incorporate resource consumption reasoning within verber i.e., how many wearable pairs of clothes do I have and therefore when do I need to do laundry.
  • pse or verber should keep track of which goals are currently scheduled by verber, and which have been completed.
  • Some verber specific items here: we want to write a system that if the current plan has to be aborted - will know what changes have taken place in the world model.
  • verber should have a non-interactive mode of operation, where it simply generates a schedule, and at the end of the cycle, or the next time you are around.
  • We will get verber's type system from OpenCyc for the time being.
  • Modplan is an important system that we should look into for verber.
  • By verber.
  • verber should compute your finances and warn you.
  • Here is where verber must do what ifs- what happens if I do not do this?
  • Maybe this complex visualization that I do where I wakl thorough the whole day is what I should do every day, selecting whether I did everything in sequence, verber can also plan for everything and many things may be executed from memorization.
  • verber may incorporate learning algorithms to learn what options lead to good results, as in the Sparc system.
  • Maybe corpus could handle formalization of everything - from verber and pse entries to?
  • Formalize old todo lists into verber.
  • RSR can take as input for productivity output from pse/verber.
  • Then play around with the opencyc planner and get it to generate some simple plans. Add this functionality to verber.
  • verber needs to deal with models differently.
  • Perhaps RSRs event system could also help out verber.
  • verber AND Predator should ask the user about what bad habits they engaged in. For instance, while packaging conceptnet, I did a whole bunch of bad things. RSR would be quite ideal at recording this!
  • verber needs to ask to ensure that my headphones are on before it talks about classified subjects (so that it doesn't say them outloud).
  • Must fix bug with verber where it doesn't listen
  • Secondly, I need verber to start doing "mission" or "operation" planning. This obviously entails another system.
  • RSR, let's get a better name for this, really, is a system that learns which stimuli are causing which states. I plan to use KEDS here. Anyhow, it should also be used for an elimination "diet", eliminating activities (in conjunction with verber), in order to determine which one's are responsible. For instance, I am feeling stronger than usual of remorse-like ideas, and that kind of muddled thinking, and it is also the first day I spent any time listening to binaural beats. So that is a problem. Of course, the output of verber's step logs itself would be a wonderful start for precoded items to learn from. I don't know that KEDS tabari does what is necessary here.
  • Use verber to ammortize routine commands, for instance, as a bunch of commands are supposed to be executed, pending the user's permission, plan them so that they may be started with one fell approve commands thing, and also have estimation of how serious these commands are.
  • verber should have UI functions for adding chores
  • Speech generation for verber would be nice.
  • Frequently the user and verber must disconnect contact. At times like these, verber should make special effort to create a compact plan to tell the user. For instance. We are going to disconnect momentarily. First, please get in bed with your headphones on, and verify that you can hear me. If you can't come back, otherwise, I will resume communication.
  • verber should have the ability to determine which requirements are being taken care of. For instance, "(be sure to take out trash)".
  • With verber looking more complete, a lot of this stuff is more possible. Now we just need to debug pse.
  • I can't wait to get working on mapping corpus events to actions that require verber actions. It would also be nice to move on the area of integration with Cyc, supposing I can ever figure out how to work log files.
  • Some thinking on verber, should have planning cycles, in which it plans out the acquisition of all necessary steps of life, and inducts so as to provide adequate time planning in the future. I.e., moves like an ant.
  • verber needs a lisp pretty printer
  • weatheragent for verber
  • Then implement the important features of verber.
  • Work on verber, get that working and packaged.
  • We can also use the event system to schedule what we work on. So, for instance, coordinating verber,pse and Event, we can create a plan for going to the robotics club to resolder the connections to the laptop.
  • Use Cyc, eventually logicmoo to model world state. Make sure that we have to ask manager "permission" to do everything, and also all requests. manager, I am hungry. This initiates manager to plan for the world state. This calls the Cyc agent for world state, which it sends to manager, who then sends the modified domain file to the verber agent, which then generates the plan, which is then returned to the manager agent.
  • manager can use GPS information to determine waypoint arrival when guiding plans for verber.
  • Here are some of the things we need to do next: fix the way pse craps out all the time, get Clairvoyance working and with some basic document management systems, including for instance authorized reports to ensure back to me that various people are learning various things (based on testing), find some way to get those recipes normalized, get shops up and running and taking inventory of everything I have, add this information to verber, get MDR (minimum detection route) planning operational, get new tagsets for AWB/Predator working, fix problem with script determining perl dependencies, make packages of my systems and upload, fix mini-dinstall problem, write tutorial on agentification, agentify or otherwise get command line bugzilla working, fix up manager with sleep learning capabilities, create a sample course for clairvoyance, and run backup. You're such a lazy guy, you know that?


This page is part of the FWeb package.
It derives from the Robotics Institute projects page.
Last updated Mon Jan 15 08:39:58 CST 2007 .