HPD is a simple, flexible expression syntax that allows the specification of an arbitrary HTML element on a page. The HPD language is also used to specify regions of the browsed pages that should be included in the agent's report. Report items are extracted from the browsed page based on two HPD expressions, one for the start of the region and one for the end. An agent's set of result items are collected into a single report for the agent user either as a simple list, by insertion into an HTML template, or through execution of developer-specified Java code. The HPD language is also used to specify conditional branching and looping logic for an agent.
Agents regard each set of actions that take the user away from the current page as a task.
Each task can have a conditional associated with it to determine whether or not the task should be performed. Consider Web browsing as a tree, with each Web page a node on the tree. Each node could contain subtasks, such as other links to follow or forms to complete. These subtasks can have associated conditions for executing the task. If it is not Sunday, then the link is simply not followed and another node is visited.