This release of SDML provides some fairly extensive optimisations, which should speed up existing simulations. Additionally, the "sole" feature of syntax diagrams has been extended so that it is utilised even if some arguments are not defined as sole. Such predicates are known as "partially sole". [However, predicates are only partially sole if they have a single forward chaining clause definition, whose syntax diagram ensures that clauses are of a fixed size, have sole arguments in fixed positions and have ground terms as all arguments.] The non-sole arguments are treated as an index, and the syntax diagram specifies that there is only one value of each sole argument for the same index (at any particular time for the same agent). An error results if it is attempted to assert mutiple values for the same index. This feature is likely to aid efficiency, because when such clauses are retrieved, typically all of the index arguments are known before retrieval, enabling the look-up to be performed quickly. For other predicates, indexing is only done for the first argument; for partially sole predicates, indexing is done for all non-sole arguments irrespective of their position. A further optimisation of partially sole predicates occurs when there are two or three non-sole arguments, each of which is defined to be an Integer. All clauses for such a predicate (at any particular time for the same agent) are represented internally as a two or three-dimensional grid, with coordinates starting at zero. This enables retrievals to be performed particularly efficiently if any or all of the index arguments are known before retrieval. [There is a minor caveat: there must be at least four clauses and the grid must be at least 5% full for SDML to choose a grid representation. However, if a grid representation is used at one time period, it will also be used at the next time period; SDML utilises the heuristic that grids will typically remain the same size over time.] This release of SDML also introduces a new tool - the profiler. The profiler displays statistics about the amount of time spent firing particular rules and performing other tasks during a simulation run. A profiler window (provided using the navigator) can be opened using the "open profiler" option in the "Browse" pull-down menu of the workbench browser. The profiler can be started from this window or when asked at the start of a simulation. The obsolete clause repositories of databases have been improved to include clauses involving undefined objects, due to an object definition being removed. The clauses are moved back into the database itself if the object definition is added again (perhaps due to the operation being undone). A similar facility is now implemented for obsolete rules that have been asserted into agents' content rulebases by meta-agents. The obsolete rules can be browsed using the navigator (but not the old-style browser) - they appear in the list of meta-accessible rules with "++ obsolete rule ++" before their rule names.