La forma de organizar una aplicación, la representación de sus componentes o módulos, la secuencia de procesamiento de los módulos y los resultados que se brinden, depende directamente de las estrategias de control que se utilicen para ejecutar una aplicación.
Las estrategias de control están relacionadas directamente con la forma de activar las reglas de producción y por consiguiente, con el orden que se sigue en el procesamiento para obtener los valores de los hechos que son solución del problema.
En su inicio, los lenguajes de representación del conocimiento no contaban con la posibilidad de que el IC pudiera definir explícitamente la estrategia de control con la que se ejecutaría una aplicación pues ésta se encontraba programada en su máquina de inferencia, esto es, la estrategia de procesamiento era fija.
Posteriormente, para que el IC tuviese la posibilidad de definir una estrategia de control específica en una aplicación, se crearon diversas funciones que permiten: definir los módulos componentes de una aplicación, el orden de ejecución de los módulos y dentro de éstos, la secuencia de activación de las reglas de producción [Giarratano, 2001].
Sin embargo, a pesar de que las estrategias de control se pueden definir programativamente de acuerdo a las necesidades del problema que se trate, esta tarea resulta muy compleja pues el IC debe programar la táctica de procesamiento de las reglas de producción.
Con el fin de facilitar la definición de las estrategias de control de una aplicación y minimizar la labor de programación, en el lenguaje HAries se ha definido una estructura de representación del conocimiento que permite modelar la organización de una aplicación, a través de particiones, cada una con sus objetivos, especificaciones de procesamiento, apariencia y resultados particulares.
Esta nueva estructura forma parte de la BC de una aplicación y brinda posibilidades para: