Professional AssociationsProfessional Associations: ACM Distinguished Scientist | ACM Distinguished Speaker | Association for the Advancement of Artificial Intelligence (AAAI)
Planner4J (2001 - 2008)
A Framework of Java-based Planners for Enterprise Applications
Technical Lead: Biplav Srivastava
Collaborators over the years: Anupam Mediratta, Richard Goodwin, Jana Koehler
Availability: Planner4J is freely available within IBM, as-is. A subset of its capability is available externally via the ABLE toolkit from the IBM Alphaworks site.
We here discuss:
- What exactly is Planner4J?
- How does Planner4J work?
- Where has Planner4J been used?
- More Information: Papers
What exactly is Planner4J?
Planning is the problem of synthesizing sequence(s) of actions, potentially partially ordered, in order to take an agent to the goal state(s) given that it starts from the initial state. There is an active community in Artificial Intelligence (AI) working on planning and many such applications have graduated to real world use. The problem can encompass a variety of formalisms ranging from the simplistic closed-world deterministic planning to complex ones with actions having probabilistic effects, environment modeled with external events, satisfaction of additional temporal and resource constraints, and domains having hierarchical structure.
Planner4J is a Java-based planning framework consisting of an extensive family of planners that are easy to use, easy-to-extend and maintain, and yet are efficient. Specifically, Planner4J offers a classical planner, contingent planner, metric planner and an Hierarchical Task Network planner with similar interfaces and built over a common core that reuses much of the generic features (upto 80% code reuse).
Planner4J planners are not only efficient but are also designed to be usable and maintainable. Users want to start from simple planning formulations like classical planning when they are just initiated to automated action synthesis and then want to graduate to more appropriate sophisticated forms of planning for their domains (e.g., metric-temporal, HTN or probabilistic) as they concretize their planning needs: how much domain information is easily available, how much time is available, etc. However, they want common programming interfaces so that their application programs are least impacted. The output plan should be easily integratable into enterprise environment like workflows. They also want help in tuning the often myriad parameter settings that planners often come with which are understood best by search experts. They may want sets of plans rather than a single one with known inter-relationship among them. Finally, planning may not be an one-off activity for them; they want to analyze previously used plans in new scenarios.
The requirements while building planners are that a devolpmer's task should be eased by letting her focus more on specific algorithmic issues (e.g., heuristics) rather than standard mundane activites (e.g., parsing, managing states). The maintenance and upgradation of planners should be facilitated through common modularization of implementation and ease in propagating changes/ bug fixes. Finally, it should be possible to introduce new types of planners at a short notice.
Planner4J is envisioned to address these issues. On one hand, the planner can be integrated into applications that need planning capability. On the other hand, the planning algorithm itself can be extended and improved with new innovations that can be made available to the applications.
How does Planner4J work?
Planner4J addresses the requirements of planning users and planning developers through a combination of software engineering techniques and focusing on usability-driven new planning features.
The components of a planner are organized as layers with well-defined interfaces. Planner4J-Core is the core module made up of packages containing generic interfaces and implementations of common capabilities like command-line processing and search queue. All Planner4J planners share the Planner4J-Core, thus promoting easy understanding of the interfaces by potential users, and yet allows extensibility in the Planner4J design. Planner4J-Classical module contains the reference implementation for the Planner4J-Core interfaces and implements a "classical planner". Other types of planners only specialize the necessary unique processing, e.g., parsing, heuristic calculation, search control, printing, and can reuse the Planner4J components.
Planner4J also implements unique usability features like automatic parameter tuning, finding multiple inter-related plans and generating output in workflow (BPEL4WS) format, which are commonly available to all the planners in the family.
Where has Planner4J been used?
Planner4J has been used in many applications. The prominent ones are:
- As a planning rule component in the Agent Building and Learning Environment. Planner4J's classical and HTN components are available through the ABLE toolkit.
- As the logical composer in the Synthy web service composition tool. Planner4J's contingent planner is used in Synthy.
- As the causality-based matcher in the IBM's Semantic Matching tool. Planner4J's metric planner was used here.
- Planner4J's classical and metric planners have been used in a decision support for managing software components.
More Information: Papers
- Domain-Dependent Parameter Selection of Search-based Algorithms Compatible with User Performance Criteria , B. Srivastava, A. Mediratta, Proceedings of the 25th National Conference on Artificial Intelligence (AAAI-05), Pittsburgh, USA. [Describes automatic parameter tuning in Planner4J.]
- Applying Planning in Composition of Web Services with a User-Driven Contingent Planner , A. Mediratta, B. Srivastava, In IBM Research Report RI 06002, February 2006. Accepted as short paper in ICWS 2006 but we refused publication. [Explains the Planner4J's contingent planner used in Synthy.]
- SEMAPLAN: Combining Planning with Semantic Matching to Achieve Web Service Composition , R. Akkiraju, B. Srivastava, A. Ivan, R. Goodwin, T. Mahmood, In Proceedings of the IEEE International Conference on Web Services (ICWS 2006), Chicago, USA. [Explains how Planner4J's metric planner is modified for causality-based semantic matching.]
- Finding Inter-related Plans , B. Srivastava, S. Kambhampati, M. H. Do, T. Nguyen, In ICAPS 2006 Workshop on Plan Analysis and Management, The Lake District, UK [Describes finding inter-related plans in Planner4J (and more).]
- Managing the Life Cycle of Plans , B. Srivastava, J. Vanhatalo, J. Koehler, Proceedings of the 17th Annual Conference on Innovative Applications of Artificial Intelligence (IAAI-05), Pittsburgh, USA [Describes the plan analysis and BPEL4WS generation features (and more).]
- Bringing Planning to Business Applications with ABLE B. Srivastava, J. P. Bigus, D. A. Schlosnagle, In Proc. International Conference on Autonomic Computing (ICAC 2004), New York, USA, May 17-18, 2004. [Describes how Planner4J's classical and HTN planners can be used from ABLE and demonstrated autonomic computing features.]
- A Decision-support Framework for Component Reuse and Maintenance in Software Project Management , B. Srivastava, In IEEE 8th European Conference on Software Maintenance and Reengineering (CSMR 2004), Tampere, Finland, March 24-26, 2004. [Describes Planner4J's classical and metric planners being used for decision support.]
- A Software Framework to Apply Planning Techniques , B. Srivastava, In Proceedings of Knowledge Based Computer System (KBCS-2004), Hyderabad,pages 382 to 392, 2004, ISBN 81-7764-711-3. Also as IBM Research Report RI 04001, March 2004. [Describes Planner4J's design.]