• No se han encontrado resultados

Ingeniero de conocimiento automatizado para el diseño en ingeniería

N/A
N/A
Protected

Academic year: 2020

Share "Ingeniero de conocimiento automatizado para el diseño en ingeniería"

Copied!
105
0
0

Texto completo

(1)Universidad Central "Marta Abreu" de las Villas. Facultad de Matemática, Física y Computación Ingeniería en Informática. TRABAJO DE DIPLOMA Ingeniero de conocimiento automatizado para el diseño en ingeniería. Autor Enier Ramos García Tutores Dra. María Matilde García Lorenzo Dr. Daniel Gálvez Lio. “Año 55 de la Revolución” Santa Clara Curso 2012- 2013.

(2) DICTAMEN. DICTAMEN. Hago constar que el presente trabajo fue realizado en la Universidad Central Marta Abreu de Las Villas como parte de la culminación de los estudios de la especialidad de Ingeniería Informática, autorizando a que el mismo sea utilizado por la institución, para los fines que estime conveniente, tanto de forma parcial como total y que además no podrá ser presentado en eventos ni publicado sin la autorización de la Universidad.. ___________________________________ Firma del Autor. Los abajo firmantes, certificamos que el presente trabajo ha sido realizado según acuerdos de la dirección de nuestro centro y el mismo cumple con los requisitos que debe tener un trabajo de esta envergadura referido a la temática señalada.. _______________________________ Firma del Tutor. _______________________________ Firma del Jefe de Laboratorio.

(3) PENSAMIENTO. PENSAMIENTO. “Knowledge will forever govern ignorance; and a people who mean to be their own governors must arm themselves with the power which knowledge gives”. Jame Madison. “Si se enseña algo a un hombre, jamás lo aprenderá. Aprender es un proceso activo, aprendemos haciendo”. Bernard Shaw.

(4) DEDICATORIA. DEDICATORIA. A mi familia, en especial a mis padres y hermanos, a mi novia y a su abuela. A la Informática..

(5) AGRADECIMIENTOS. AGRADECIMIENTOS. Por fortuna, a lo largo del trabajo, fueron muchas las personas que de alguna manera, colaboraron directa o indirectamente en la realización del mismo. Por lo tanto, hago extensivo mi agradecimiento a todas ellas. No obstante, debo expresar un reconocimiento especial a las siguientes personas:. A mis padres, Gabriela García García y Ramón Ramos Machado, por su cariño, amor, paciencia, comprensión, confianza y apoyo incondicional, en todas las metas que me propongo en mi vida profesional.. A mis hermanos, Rubersy Ramos García, Irel Ramos García, y Eliener Ramos García por el apoyo que me han dado siempre a lo largo de todos estos años de estudio.. A mi novia Amanda Martirena Ramírez por su apoyo y comprensión en todo momento.. A María Teresa por su dedicación, cariño, amor y por su ayuda en la escritura y revisión del documento.. A mis tutores, Dra. María Matilde García Lorenzo y Dr. Daniel Gálvez Lio por su apoyo constante, dedicación, y por su ayuda infinita en la escritura y revisión del documento.. A todos mis amigos y amigas cuyos consejos han contribuido con el trabajo y a presentar este documento.. A todos, Muchas Gracias.. Enier Ramos García..

(6) RESUMEN. RESUMEN. Para construir un sistema experto, el ingeniero de conocimiento extrae el conocimiento al experto en un área específica y se transita por un conjunto de etapas para concluir el mismo. Este proceso requiere que el ingeniero de conocimiento sea conocedor del formalismo de representación del conocimiento con el cual se construye la base de conocimiento, pero además se pierde tiempo y calidad en la extracción del conocimiento desde el experto humano. Como una forma de lograr la extracción del conocimiento directamente del experto, sin que este conozca de dicho formalismo, se desarrollan sistemas conocidos como Ingeniero de Conocimiento Automatizado (ICA). Con este trabajo se implementa un ICA para el Sistema Inteligente de Ayuda al Diseño (SIAD) en su versión para el sistema operativo Windows (ICASIAD), el cual favorece la adquisición del conocimiento en la construcción de una base de conocimiento, con una interfaz visual cómoda y métodos que validan la aceptación de la estructura requerida para el formalismo de representación del conocimiento que implementa dicho sistema. ICASIAD resulta de interés tanto para la docencia de pregrado y postgrado que se imparte en función de l aprendizaje de dichas temáticas y constituye una herramienta valiosa para los ingenieros mecánicos y otros diseñadores en la creación de sus propios sistemas expertos..

(7) ABSTRACT. ABSTRACT. In order to build an expert system, the knowledge engineer must remove the expert knowledge in a specific area and pass it through a set of steps for completing the same. This process requires that the knowledge engineer is knowledgeable about the knowledge representation formalism with which to build the knowledge base, but in addition, this process implies also a loss of time and quality in the extraction of knowledge from the human expert. As a way to achieve the extraction of expert knowledge directly without the cognizance of the formalism, develop systems known as Automated Knowledge Engineer (ICA).With this work, it is do an ICA for Intelligent Assistance System Design (SIAD) version for the Windows operating system (ICASIAD), which favors the acquisition of knowledge in the construction of a knowledge base with a visual interface comfortable and methods to validate the acceptance of the required structure for knowledge representation formalism that implements such a system. ICASIAD is of interest both for undergraduate and postgraduate taught in learning function of these issues and constitutes a valuable tool for mechanical engineers and other designers in creating their own expert systems..

(8) TABLA DE CONTENIDOS. TABLA DE CONTENIDOS. INTRODUCCIÓN ........................................................................................................ 1 CAPÍTULO 1. INGENIERO DE CONOCIMIENTO AUTOMATIZADO ................ 5 1.1. Base de conocimiento ........................................................................................ 5 1.1.1. Definición.................................................................................................... 5 1.1.2. Características ............................................................................................. 6 1.1.3. Formas de representar el conocimiento ...................................................... 6 1.1.3.1. Reglas de producción ........................................................................... 8 1.1.3.2. Marcos.................................................................................................. 9 1.1.3.2.1. Marcos según formalismo en el SIAD del sistema operativo Windows ..................................................................................................... 10 1.2. Sistemas basados en el conocimiento .............................................................. 12 1.2.1. Arquitectura de un sistema experto........................................................... 13 1.3. Ingeniería del conocimiento............................................................................. 14 1.3.1. Modos de adquisición del conocimiento................................................... 15 1.3.2. Ingeniero de conocimiento automatizado ................................................. 16 1.3.2.1. Ingeniero de conocimiento automatizado para el SIAD del sistema operativo Windows ......................................................................................... 17 1.4. Conclusiones parciales ..................................................................................... 18 CAPÍTULO 2. DISEÑO DE UN INGENIERO DE CONOCIMIENTO AUTOMATIZADO PARA EL SIAD DEL SISTEMA OPERATIVO WINDOWS . 20 2.1. Sistemas basados en el conocimiento construidos desde SIAD ...................... 20 2.1.1. Base de conocimiento para el SIAD ......................................................... 20 2.1.1.1. Información sobre el objeto de diseño ............................................... 21 2.1.1.2. Información sobre cada parámetro de diseño .................................... 25.

(9) TABLA DE CONTENIDOS. 2.2. Diseño de la nueva versión del ICASIAD ....................................................... 29 2.2.1. Diseño de la interfaz visual ....................................................................... 30 2.3. Implementación de la nueva versión del ICASIAD ........................................ 33 2.3.1. Clases para almacenar la información ...................................................... 34 2.3.2. Clases para el control y la realización de acciones con la información .... 35 2.3.3. Clases para la visualizar la información ................................................... 40 2.3.4. Secuencia de trabajo del ICASIAD .......................................................... 43 2.4. Herramientas para el desarrollo del ICASIAD ................................................ 44 2.5. Conclusiones parciales ..................................................................................... 44 CAPÍTULO 3. DOCUMENTACIÓN Y EVALUACIÓN DEL INGENIERO DE CONOCIMIENTO AUTOMATIZADO .................................................................... 45 3.1. Requerimientos mínimos ................................................................................. 45 3.2. Resumen del manual de usuario ...................................................................... 45 3.2.1. La barra de menús ..................................................................................... 47 3.2.2. La barra de herramientas........................................................................... 53 3.2.3. La barra de contenidos .............................................................................. 55 3.2.4. La barra de estado ..................................................................................... 59 3.2.5. Uso del mouse y el teclado ....................................................................... 60 3.3. Validación del sistema ..................................................................................... 64 3.4. Beneficios y nivel de la aplicación .................................................................. 65 3.5. Conclusiones parciales ..................................................................................... 66 CONCLUSIONES ...................................................................................................... 67 RECOMENDACIONES ............................................................................................. 68 REFERENCIAS BIBLIOGRÁFICAS ........................................................................ 69 ANEXOS .................................................................................................................... 70.

(10) TABLA DE CONTENIDOS. Anexo 1: Sintaxis de escritura de la base de conocimiento en notación BNF........ 70 Anexo 2: Delimitadores de información de la base de conocimiento .................... 72 Anexo 3: Sintaxis de las expresiones lógicas y aritméticas en notación BNF........ 73 Anexo 4: Funciones definidas................................................................................. 74 Anexo 5: Acciones definidas .................................................................................. 77 Anexo 6: Diagramas de clases ................................................................................ 80 Anexo 6.1: De las clases principales para almacenar la información ................. 80 Anexo 6.2: De las clases principales para controlar la información ................... 83 Anexo 6.3: De las clases principales para visualizar la información.................. 92.

(11) INTRODUCCIÓN. INTRODUCCIÓN. Las investigaciones acerca de los sistemas de Diseño Asistido por Computadora (CAD) en la Universidad Central “Marta Abreu” de las Villas (UCLV), comienzan en el año 1986 apoyado por empresas del territorio como: la Empresa Industrial Nacional de Productos y Utensilios Domésticos (EINPUD), y con la participación de la Facultad de Matemática, Física y Computación (MFC) y de la Facultad de Ingeniería Mecánica. Como resultado de esta cooperación, poco tiempo después se constituyó el Grupo CAD/CAM (Diseño Asistido por Computadora / Fabricación Asistida por Computadora) de la UCLV con un carácter multidisciplinario.. Desde sus inicios el trabajo del grupo se orientó al desarrollo de sistemas CAD, lográndose la implementación de varios de ellos. Como parte de la vinculación del grupo CAD/CAM con el seminario de Inteligencia Artificial de la facultad de Matemática, Física y Computación comienzan los primeros trabajos en el país para aplicar técnicas de Inteligencia Artificial en el desarrollo de sistemas CAD. En tal sentido, se realizó una investigación para definir y desarrollar herramientas que apoyaran la creación de sistemas CAD basados en el conocimiento ; una de estas herramientas desarrolladas fue el SIAD para el sistema operativo DOS (Gálvez et al., 1993).. La versión del SIAD más difundida y utilizada ha sido la versión 2.50 para el sistema operativo DOS. Con esta versión se ha logrado durante muchos años satisfacer en gran medida las necesidades de los diseñadores, pero el avance tecnológico demandó nuevas versiones de este software en sistemas operativos más avanzados como el sistema operativo Windows. Debido a esto en el año 2001 se desarrolló una nueva versión del SIAD para el sistema operativo Windows (González and Hernández, 2001a).. Uno de los utilitarios del SIAD más importantes es el ICASIAD, ya que el usuario puede utilizarlo para la edición de la base de conocimiento con la cual trabaja el 1.

(12) INTRODUCCIÓN. SIAD, independientemente de los conocimientos que tenga sobre como diseñar sistemas basados en el conocimiento.. ICASIAD permite al usuario no preocuparse del formalismo de representación del conocimiento que se emplee en la base de conocimiento, tan solo de brindarle dicha información necesaria la cual edita y adapta a la estructura de datos requerida y que será usada por el SIAD. Su interfaz visual favorece que cuando se trata de un diseñador experimentado, este interactúe con la misma mediante un diálogo acorde a términos que conoce dicho usuario y le extrae el conocimiento necesario para construir una base de conocimiento. Una vez construida el conocimiento almacenado puede ser fácilmente modificado.. El ICASIAD para el SIAD del sistema operativo DOS presenta limitaciones entre las que se encuentran: no utiliza el ratón y las acciones de edición deben ser controladas manualmente a través del teclado; ya que el sistema operativo DOS no es ni multiusuario ni multitarea, no puede trabajar en más de un proceso a la vez, ni con particiones de disco demasiado grandes superiores a los 2 GB, que requieran formatos y sistemas de archivos tales como el FAT32, propio de l Windows de 32 bits o el NTFS, introducido en la versión de Windows NT, además por limitaciones del sistema operativo no puede manejar más de 64KB de memoria RAM (Wikipedia, 2013).. Posteriormente se creó un ICASIAD para el SIAD del sistema operativo Windows, pero este no cumple las expectativas de un ICA, y las diferentes opciones adolecen de una terminación adecuada lo que provoca errores de ejecución inesperados.. Debido a las anteriores limitaciones del ICASIAD para el SIAD del sistema operativo Windows y a la necesidad de lograr un producto acabado que incluya las ventajas ya alcanzadas en la versión de DOS e incorpore las facilidades de soporte del sistema operativo Windows se da la tarea de implementar el ICASIAD para el SIAD del sistema operativo Windows. 2.

(13) INTRODUCCIÓN. Objetivo general: Implementar un ICASIAD para capturar la información de diseño de productos ingenieriles, que independice al usuario del conocimiento del formalismo de representación del conocimiento empleado, para confeccionar la base de conocimiento que utiliza el SIAD del sistema operativo Windows.. Objetivos específicos: 1. Implementar una aplicación que brinde una interfaz visual que permita al usuario editar conocimiento de un área de especialidad determinada. 2. Independizar al usuario del formalismo de representación del conocimiento que se emplee en la base de conocimiento que use el SIAD del sistema operativo Windows. 3. Confeccionar la estructura interna de la base de conocimiento interpretable por el SIAD del sistema operativo Windows con el conocimiento adquirido del usuario. 4. Validar el funcionamiento de la aplicación obtenida.. Hipótesis de investigación: La implementación de un ICASIAD para capturar la información de diseño de productos ingenieriles para confeccionar la base de conocimiento que use el SIAD del sistema operativo Windows, favorecería la automatización del proceso de adquisición del conocimiento tanto en tareas de diseño, como en actividades docentes de pregrado y postgrado donde se requiera estimular el conocimiento de un formalismo de representación similar a los marcos. Esta tesis ha sido dividida en tres capítulos, en el capítulo 1 “INGENIERO DE CONOCIMIENTO AUTOMATIZADO ” describe la ingeniería de conocimiento y como automatizar dicho proceso según el formalismo de representación del conocimiento escogido. En el capítulo 2 “DISEÑO DE UN INGENIERO DE CONOCIMIENTO. AUTOMATIZADO. PARA. EL. SIAD. DEL. SISTEMA. OPERATIVO WINDOWS” se describe la forma de representar el conocimiento para 3.

(14) INTRODUCCIÓN. bases de conocimientos requeridas por el SIAD. Se detallan los elementos fundamentales del diseño y la implementación de la nueva versión del ICASIAD. El último capítulo “DOCUMENTACIÓN Y EVALUACIÓN DEL INGENIERO DE CONOCIMIENTO AUTOMATIZADO ” propone la forma en que un usuario puede trabajar con la aplicación, especificándose requerimientos y bondades del sistema implementado.. 4.

(15) CAPÍTULO 1. INGENIERO DE CONOCIMIENTO AUTOMATIZADO. CAPÍTULO 1. INGENIERO DE CONOCIMIENTO AUTOMATIZADO. La inteligencia artificial para poder resolver los complejos problemas a los cuales se enfrenta, necesita disponer no solo de métodos de solución apropiados, sino también de gran cantidad de conocimiento. Partiendo del criterio existente sobre el papel principal del conocimiento en la solución de problemas, resulta claro que es necesario considerar cuidadosamente como realizar la edición del mismo. Para esto, se determina su representación, lo cual no es más que el proceso de estructurar el conocimiento sobre un dominio de aplicación de modo que se logre una captación correcta del conocimiento necesario en función de solucionar el problema. En este capítulo se describe la ingeniería de conocimiento y como automatizar dicho proceso según el formalismo de representación del conocimiento escogido.. 1.1. Base de conocimiento Informalmente se habla de base de conocimiento como la componente donde se almacena el conocimiento del campo específico a desarrollar, la cual contiene el conocimiento del tema; generalmente proporcionado por un experto u otras fuentes de conocimientos, convenientemente formalizado y estructurado.. 1.1.1. Definición Una base de conocimiento (Inés, 2012b) es una estructura de datos que contiene una gran cantidad de información sobre un tema específico, generalmente introducida por un experto en dicho tema, sobre la cual se desarrolla la aplicación. Este conocimiento lo constituye la descripción de:  Objetos a tener en cuenta y sus relaciones.  Casos particulares o excepciones y diferentes estrategias de resolución con sus condiciones de aplicación (meta-conocimiento, es decir, conocimiento sobre el conocimiento).. 5.

(16) CAPÍTULO 1. INGENIERO DE CONOCIMIENTO AUTOMATIZADO. 1.1.2. Características La base de conocimiento es el pilar central de un sistema de base de conocimiento, ya que es el depósito donde se almacena el conocimiento del que éste dispone sob re un dominio específico.. En la forma de representar el conocimiento en una base de conocimiento hay que tener en cuenta tres niveles (Alvares, 1994): 1. Cognitivo: Cómo alcanzan y procesan al saber los hombres. 2. Representación: Cómo se formaliza el conocimiento. 3. Implementación: Cómo se procesa por un ordenador.. Si analizamos los tres niveles anteriores se puede apreciar que los dos primeros niveles están en función del tercero, es decir, están condicionados y enfocados a su posible manipulación por ordenadores.. 1.1.3. Formas de representar el conocimiento La cuestión básica de la representación del conocimiento es el desarrollo de una notación suficientemente precisa con la cual representar el mismo. A esa notación se le llama Forma de Representación del Conocimiento (FRC).. No existe actualmente una FRC general, capaz de ser usada en todo tipo de aplicación con éxito; las formas disponibles están limitadas a más o menos un dominio específico. Ante una aplicación y la oferta de las FRC existentes, es necesario realizar la selección de la más adecuada para lo cual se pueden considerar los criterios siguientes (Bello et al., 2003):  Debe permitir describir el dominio de una manera natural, reflejando tanto como sea posible la estructura de los objetos, los hechos y las relaciones entre ellos.  Debe aceptar conocimiento empírico, teórico o heurístico, y combinar el conocimiento. declarativo con el procedimental,. requerimientos de la aplicación. 6. de acuerdo. a los.

(17) CAPÍTULO 1. INGENIERO DE CONOCIMIENTO AUTOMATIZADO.  Debe permitir estratificar el conocimiento de acuerdo a su significado y funciones.  Debe permitir que el conocimiento de los expertos se represente fácilmente.  Los expertos en la aplicación deben poder comprender el conocimiento que está almacenado.  El conocimiento almacenado se debe poder usar con efectividad.. Criterios a los que debe ajustarse la representación del conocimiento (Alvares, 1994):  Fuerza de expresión: Es la capacidad de la representación elegida para poder describir de una manera adecuada y completa todos los elementos de un universo de discurso que hemos tomado como punto de referencia.  Claridad: Intento de evitar la ambigüedad por medio de una representación homogénea. Ello implica la necesidad de representar los mismos hechos con el mismo tipo de representación. Y como ideal sustituir la representación implícita de los lenguajes procedurales por la representación explícita de los lenguajes declarativos. Y todo ello con el fin de que tanto el ingeniero como el no experto puedan comprender y modificar fácilmente el conocimiento implementado en la base de conocimientos.  Eficiencia: Refiere al procesamiento de los conocimientos a los cuales se exige que puedan ser manipulados y transformados por el ordenador de manera fértil, esto es, generar nuevos conocimientos que puedan servir para alcanzar la solución del problema u objetivo que se ha planteado. De modo sintético: que el formalismo elegido facilite la deducción por med io del mecanismo de inferencia, permita el uso de meta conocimientos y que además posibilite la adquisición de nuevos conocimientos.. Hay muchas maneras posibles de representar el conocimiento de un dominio. Para manejo del conocimiento simbólico se tienen entre otras (Edwards, 1991):  Reglas.  Marcos.  Redes semánticas. 7.

(18) CAPÍTULO 1. INGENIERO DE CONOCIMIENTO AUTOMATIZADO.  Objetos.. Los esquemas de representación del conocimiento han sido generalmente clasificados como declarativos y procedimentales. Un esquema declarativo se usa para representar hechos y aserciones, mientras que la representación procedimental especifica un procedimiento para resolver los problemas, incluye procedimientos o algoritmos. Los métodos para la representación del conocimiento declarativo abarcan: lógica, reglas de producción, redes semánticas, marcos y scripts (Bello et al., 2003).. 1.1.3.1. Reglas de producción Una regla de producción no es más que un par (A, B) que puede representarse en el cálculo proposicional como A  B. Para manipular la información contenida en ellas se utiliza la regla de Modus Ponens: del hecho A y A  B se infiere B.. Las reglas expresan siempre una condicional, con un antecedente y un consecuente. La interpretación de una regla es que si el antecedente se puede satisfacer entonces se obtiene el consecuente. La regla de producción representa una unidad relativamente independiente de conocimiento la cual puede describir relaciones:. Las reglas pueden utilizar un formato IF- THEN para representar el conocimiento, la parte IF de una regla es una condición (también llamada premisa o antecedente), y la parte THEN de la regla (también llamada acción, conclusión o consecuente) permite inferir un conjunto de hechos nuevos si se verifican las condiciones establecidas en la parte IF.. Al usar las reglas de producción como FRC se pueden desarrollar sistemas con las propiedades siguientes (Bello et al., 2003):  Modularidad: Cada regla define una pequeña, pero independiente, unidad de conocimiento.. 8. relativamente.

(19) CAPÍTULO 1. INGENIERO DE CONOCIMIENTO AUTOMATIZADO.  Incre mentabilidad: Se pueden añadir nuevas reglas con una relativa independencia del resto.  Modificabilidad: Las reglas viejas pueden ser modificadas con relativa independencia.  Habilidad: La habilidad del sistema crece proporcionalmente a la cantidad de reglas.  Transparencia: Pueden explicar el camino que llevó a la solución.  Refinamiento: El conocimiento existente puede ser refinado.. 1.1.3.2. Marcos Un marco es un concepto originalmente propuesto por Marvin Minsky en 1975 (Minsky, 1975) como una forma de representación del conocimiento, que es capaz de representarlos atributos de un objeto o concepto de una manera más rica de lo que es posible usando reglas. Típicamente consiste de un número de aspectos, cada una de los cuales pueden contener un valor o se puede dejar en blanco. El número y el tipo de aspectos se elegirán de acuerdo con el conocimiento particular que está siendo representado.. Un marco (Edwards, 1991) es una estructura de datos compleja que contiene un agregado de información acerca de un objeto. La información almacenada se distribuye en diferentes campos llamados aspectos, cada aspecto contiene la información sobre un atributo del objeto que se modela. A cada aspecto se le puede asociar varios tipos de información, llamados facetas del aspecto. Se puede plantear que la información almacenada tiene cuatro niveles de detalle: el marco, los aspectos del marco, las facetas de cada aspecto y los valores almacenados en cada faceta. La representación debe tener dos capacidades: expresividad adecuada y una eficiencia de razonamiento. La expresividad y el razonamiento le confieren la capacidad adecuada para ser considerado como una alternativa útil para la representación del conocimiento.. 9.

(20) CAPÍTULO 1. INGENIERO DE CONOCIMIENTO AUTOMATIZADO. El formalismo de marcos (Inés, 2012a) se ha revelado como la técnica de representación del conocimiento más utilizada en la inteligencia artificial cuando el conocimiento del dominio está organizado en base de conceptos. Minsky definió los marcos como una estructura de datos que representa situaciones estereotipadas construidas sobre situaciones similares ocurridas anteriormente, permitiendo así aplicar a situaciones nuevas el conocimiento de situaciones, eventos y conceptos previos. El conocimiento que se expresa en la estructura de datos es el conocimiento declarativo del dominio. Dentro del marco existe conocimiento procedimental que se refiere a: cómo utilizar el marco, qué se espera que suceda a continuación, así como el conjunto de acciones que se deben realizar tanto si las expectativas se cumplen como si estas fallan. Los marcos organizan el conocimiento del dominio en árbo les, también llamados jerarquías, o en grafos, ambos construidos por especialización de conceptos generales en conceptos más específicos. Las técnicas de inferencia utilizadas para razonar con los conocimientos de la base de conocimiento son: equiparación, para clasificar entidades en una jerarquía; herencia simple y herencia múltiple, para compartir propiedades que están distribuidas en la jerarquía de conceptos o en el grafo, respectivamente; y valores activos y métodos para la conducta del sistema. Los conceptos que el ingeniero de conocimiento utilizará al formalizar la base de conocimiento en marcos son: marcos para representar conceptos, relaciones para expresar dependencias entre conceptos, propiedades para describir cada concepto, y facetas para expresar de múltiples formas los valores con que se puede rellenar cada propiedad.. 1.1.3.2.1. Marcos según formalis mo en el SIAD del sistema operativo Windows Según (Bello et al., 1994) el modelo físico del producto se describe por medio de dos tipos de marcos. El primero se llama marco del objeto de diseño, el cual permite almacenar el conocimiento acerca de un producto de una manera general. El segundo tipo de marco se llama marco de parámetros de diseño, y se utiliza para representar el conocimiento en relación con cada parámetro del producto. Por lo tanto, una base de conocimiento almacena el modelo físico de un determinado producto, que consistirá 10.

(21) CAPÍTULO 1. INGENIERO DE CONOCIMIENTO AUTOMATIZADO. en un marco de objeto y tantos marcos de parámetros en dependencia con los requerimientos del producto.. Un marco de objeto de diseño está formado por los siguientes aspectos (González and Hernández, 2001b):  Nombre del producto.  Descripción del producto.  Pre acciones del diseño.  Parámetros de diseño importados.  Restricciones de diseño.  Funciones para evaluar la solución.  Parámetros para generar información para AutoLisp.  Post acciones del diseño.. Cada marco de parámetro de diseño está formado por los siguientes aspectos:  Nombre del parámetro.  Descripción del parámetro.  Dominio del parámetro.  Pre acciones de evaluación.  Parámetros antecesores.  Procedimientos para el cálculo del valor del parámetro.  Media acciones de evaluación  Procedimientos para el cálculo del peso del parámetro.  Post acciones de evaluación.. Existen otras formas de representación del conocimiento declarativo tales como redes semánticas y objetos, pero no serán tratadas en el marco del presente trabajo.. Una vez formalizado el conocimiento específico que se requiere para construir una base de conocimiento se requieren determinar las restantes componentes que conforman un sistema basado en el conocimiento. 11.

(22) CAPÍTULO 1. INGENIERO DE CONOCIMIENTO AUTOMATIZADO. 1.2. Sistemas basados en el conocimiento Un sistema basado en el conocimiento según Matilde Inés Césari (Inés, 2012b) es aquel que tiene como finalidad la resolución de problemas del dominio para el que ha sido creado, aplicando técnicas de razonamiento sobre el conocimiento que alberga su base de conocimiento.. En (Pino et al., 2001) un sistema experto se puede definir como aquel programa de ordenador que contiene la erudición de un especialista humano versado en un determinado campo de aplicación. En este sentido, los expertos escasean y su contratación supone una gran inversión económica, por lo que se intenta construir un sistema de forma que los conocimientos del experto se representen en una forma que el ordenador pueda procesar. Esto es, un modelo computarizado de las capacidades de razonamiento y habilidades en resolución de problemas del especialista humano.. Así pues los sistemas expertos son programas que hacen explícito el conocimiento alojado en los expertos u otras fuentes, que tienen información específica de un tema concreto. Son llamados expertos porque emulan el comportamiento de un experto en un tema concreto y en ocasiones son usados por ellos. Simula el proceso de aprendizaje, de memorización, de razonamiento, de comunicació n y de acción de un experto humano en una determinada rama de la ciencia o campo, suministrando, de esta forma, un consultor que puede suministrar ayuda a los humanos con un grado razonable de fiabilidad.. Dado que un sistema experto pretende emular la actividad de los expertos humanos, debería ser capaz, en principio, de (Hayes et al., 1983):  Resolver el problema que se plantea de la misma manera que el experto humano.  Trabajar con datos incompletos o información insegura (como hace el experto humano en ocasiones).  Explicar el resultado obtenido.  Aprender conocimientos nuevos sobre la marcha. 12.

(23) CAPÍTULO 1. INGENIERO DE CONOCIMIENTO AUTOMATIZADO.  Reestructurar los conocimientos de que dispone en función de datos nuevos.  Saltarse las normas, cuando se llega a la conclusión de que éstas no son aplicables a nuestro caso concreto.. La característica fundamental de un sistema de basado en el conocimiento (Edwards, 1991) es que separa los conocimientos almacenados (base de conocimiento) del programa que los controla (motor de inferencia) y los datos propios de un determinado problema se almacenan en una base de datos aparte (base de hechos).. 1.2.1. Arquitectura de un sistema experto Así como en la programación convencional puede distinguirse entre el código del programa y los datos, en un sistema experto se consideran cuatro componentes básicos, la base de conocimientos, la base de hechos, el motor de inferencias y la interfaz de usuario. Además pueden aparecer otras como son módulo de cálculo de la certeza con que se obtienen las soluciones, módulo de explicación a las soluciones obtenidas y modelo o módulo de autoaprendizaje.. Base de hechos: La base de hechos representa el conocimiento del estado del sistema en un cierto instante. Su información está directamente enlazada con la base de conocimiento, además la base de hechos puede utilizarse como memoria auxiliar o de trabajo para almacenar los modos de razonamiento y la forma en que han sido utilizados. De esta forma, bajo los requerimientos del usuario final, el sistema es capaz de explicar cómo ha conseguido llegar a los resultados finales.. Motor de inferencia: El motor de inferencia es un programa que se encarga de gestionar las informaciones existentes en la base de conocimiento y los datos de la base de hechos, para construir una serie de razonamientos que conduzcan a resultados. Combina y fusiona la base de conocimiento y la base de hechos, para realizar una serie de razonamientos acerca del problema en cuestión. 13.

(24) CAPÍTULO 1. INGENIERO DE CONOCIMIENTO AUTOMATIZADO. Inte rfaz de usuario: La interfaz de usuario permite la comunicación entre el usuario y el sistema experto. El usuario puede consultar con el sistema a través de menús, gráficos, entre otros, y este le responde con resultados. También muestra la forma en que extrae las conclusiones a partir de la información almacenada de la base de hechos.. 1.3. Ingeniería del conocimiento La ingeniería del conocimiento (Alvares, 1994), como actividad de construir base de conocimientos y los procedimientos necesarios para manejarlos, se definen como el subcampo de la inteligencia artificial concerniente a la adquisición, representación y aplicación del conocimiento, o como la disciplina de ingeniería por la cual el conocimiento se integra dentro de un sistema de computador para resolver problemas complejos que normalmente requieren un alto nivel de e xperiencia humana.. La ingeniería del conocimiento (Hayes et al., 1983) se define como el conjunto de principios, métodos y herramientas que permiten aplicar el saber científico y de experiencia a la utilización de los conocimientos y de sus fuentes, mediante construcciones útiles para el hombre. Enfrenta el problema de construir sistemas computacionales con destreza, aspirando primero a adquirir los conocimientos de distintas fuentes y, en particular, a concluir los conocimientos de los expertos y luego organizarlos en una implementación efectiva.. El ingeniero de conocimientos y el experto interviene n en la creación de un sistema basado en el conocimiento. El ingeniero de conocimiento y el experto pueden o no ser la misma persona, por lo que no existe un criterio único al respecto. En las primeras ocasiones en que el experto se enfrenta a la creación de un sistema basado en el conocimiento, es necesario que sea guiado u orientado por un ingeniero de conocimiento, de modo que se pueda familiarizar con esta nueva forma de pensar. Un ingeniero del conocimiento realiza todo lo que sea necesario para garantizar el éxito de un proyecto de desarrollo de un sistema experto:  La adquisición del conocimiento. 14.

(25) CAPÍTULO 1. INGENIERO DE CONOCIMIENTO AUTOMATIZADO.  La representación del conocimiento.  La construcción de prototipos.  La construcción del sistema.. 1.3.1. Modos de adquisición del conocimiento La adquisición del conocimiento es la transferencia y transformación de la experiencia en la solución de un problema desde varias fuentes a un programa. Según Maikel León Espinosa (León, 2007) los modos de adquisición de conocimiento son:  experto → ingeniero del conocimiento → base de conocimientos.  experto → programa editor inteligente → base de conocimientos.  libros → programa de inducción → base de conocimientos.  libros → procesamiento de datos → base de conocimientos.. En el primero, el experto interactúa con el ingeniero del conocimiento para construir la base de conocimiento. En el segundo el experto puede interactuar más directamente con el sistema experto a través de un programa editor inteligente, capacitado con diálogos sofisticados y un conocimiento acerca de la estructura de las bases de conocimiento. En el tercero la base de conocimiento puede ser construida parcialmente por un programa de inducción a partir de casos descritos en libros y experiencias pasadas. En el cuarto un método de adquisición del conocimiento más avanzado es el aprendizaje directo desde libros.. Automatización de la adquisición del conocimiento: La capacidad de aprendizaje es un aspecto crucial del comportamiento inteligente de los seres humanos, que les permite acumular experiencia y adaptarse a entornos cambiantes frente a los que deben utilizarse nuevas estrategias.. En la automatización de la adquisición de conocimientos deben ser considerados (Rowern, 1982):  Independencia del dominio. 15.

(26) CAPÍTULO 1. INGENIERO DE CONOCIMIENTO AUTOMATIZADO.  Uso directo de los expertos sin intermediarios.  Múltiple acceso a fuentes de conocimientos tales como texto, entrevistas con expertos y observaciones de los expertos.  Apoyo a diversidad de perspectivas incluyendo la de otros expertos.  Apoyo a diversidad de tipos de conocimientos y relaciones entre los conocimientos.  Apoyo a la presentación de conocimientos de diversas fuentes con claridad, en lo que se refiere a su derivación, consecuencias y relaciones estructurales.  Apoyo a que los usuarios apliquen los conocimientos a una variedad de dominio y que experimenten con sus aplicaciones.  Apoyo a estudios de validación.. 1.3.2. Ingeniero de conocimiento automatizado Un ICA es un programa que automatiza el proceso de adquirir, formalizar, codificar y estructurar en el ordenador el conocimiento de las personas especializadas de amplia y demostrada experiencia sobre un tema para que puedan ser procesadas eficientemente por un sistema de base de conocimiento. Un ICA tiene como actividad liberar al usuario del formalismo de representación que se emplee para estruct urar la base de conocimiento que usa el sistema basado en el conocimiento para resolver problemas complejos que normalmente requieren un alto nivel de experiencia humana.. Las etapas en el desarrollo de un sistema basado en el conocimiento provocan que la automatización de la ingeniería de conocimiento no pueda verse como un producto general válido para cualquier FRC, de ahí que aparezcan diversos ingenieros de conocimientos automatizados tomando como base un formalismo y un dominio o área específico. Ejemplos desarrollados en tal sentido son ICA que manejan mapas cognitivos difusos (León, 2007), ICASIAD (González and Hernández, 2001b).. 16.

(27) CAPÍTULO 1. INGENIERO DE CONOCIMIENTO AUTOMATIZADO. 1.3.2.1. Ingeniero de conocimiento automatizado para el SIAD del sistema operativo Windows El ICA para el SIAD del sistema operativo Windows (González and Hernández, 2001b) se le llama ICASIAD, comienza su trabajo proponiendo al usuario un menú. En dependencia de la opción seleccionada, el sistema comenzará a trabajar en uno de sus dos modos de operación: 1. Modo asistente. 2. Modo interactivo.. El modo asistente solo está disponible cuando se desea crear una base de conocimiento, y se activa cuando el usuario opta por las opciones “ICA” o “Nuevo” del menú. Este modo guía el trabajo del usuario del sistema haciéndole un conjunto de preguntas en un orden determinado que le permite al ICASIAD obtener la información básica necesaria para generar de forma automática la base de conocimiento. La información solicitada por este modo de trabajo sigue el siguiente orden: 1. Nombre del objeto de diseño. 2. Descripción (comentario) sobre el objetivo de la base de conocimiento. 3. Descripción de cada parámetro que forma parte de la base de conocimiento. 4. Para cada parámetro dado se pide el código que lo identificada (nombre del parámetro). 5. Para cada parámetro dado se piden los valores normados o de uso más frecuentes. 6. Para cada parámetro dado se analiza si es o no calculable de manera que si lo es el sistema pasa a pedir la información para conformar los procedimientos de cálculo del parámetro. 7. Restricciones de diseño entre los parámetros. 8. Para cada parámetro se piden los predecesores, es decir, los parámetros que influyen implícitamente en el cálculo del parámetro.. 17.

(28) CAPÍTULO 1. INGENIERO DE CONOCIMIENTO AUTOMATIZADO. Cuando el usuario le haya contestado al ICASIAD todo lo anterior el sistema pasa al modo interactivo.. El menú presenta además una opción para cargar una base de conocimiento desde un fichero “.bcs” creado con anterioridad; y otras opciones como “Salvar” y “Salvar como…” que como sus nombres indican le permiten al usuario salvar en memoria toda la información creada para su base de conocimiento. El modo interactivo está disponible cuando se desea modificar la información dada en el modo asistente o cuando se desea modificar la información de una base de conocimiento cuyo archivo ya se encontraba almacenado en disco.. Limitaciones:  Al diseñar interfaces de usuario deben tenerse en cuenta las habilidades cognitivas y de percepción de las personas, y adaptar el programa a ellas. Esta versión del ICASIAD hace que los usuarios dependan de su propia memoria, forzándolos a recordar cosas innecesarias (por ejemplo, información que apareció en una pantalla anterior). Los usuarios demoran en aprender a usar el sistema y se hace difícil recordar sobre el uso del sistema en un período de tiempo.  Sólo favorece el uso del mouse limitando el del teclado.  Los usuarios quedan atrapados en una tarea en muchas ocasiones, lo que provoca que terminen la ejecución de la aplicación y reinicien la misma para poder continuar con su trabajo.  El diseño de la interfaz visual no muestra en una sola ventana el aspecto gráfico de lo que construye.. 1.4. Conclusiones parciales La necesidad de automatizar el proceso de adquisición del conocimiento agiliza el proceso de construcción de sistemas basados en el conocimiento.. 18.

(29) CAPÍTULO 1. INGENIERO DE CONOCIMIENTO AUTOMATIZADO. El desarrollo de un ICA depende del formalismo a emplear y el área de conocimiento específico hacia el cual se dirige la creación de sistemas basados en el conocimiento.. Un ICA para el SIAD del sistema operativo Windows deberá responder a una interfaz visual que favorezca la adquisición de conocimiento a partir de marcos respondiendo a las bondades que este formalismo representa.. 19.

(30) CAPÍTULO 2. DISEÑO DE UN INGENIERO DE CONOCIMIENTO AUTOMATIZADO PARA EL SIAD DEL SISTEMA OPERATIVO WINDOWS CAPÍTULO 2. DISEÑO DE UN INGENIERO DE CONOCIMIENTO AUTOMATIZADO PARA EL SIAD DEL SISTEMA OPERATIVO WINDOWS. En este capítulo se describe la forma de representar el conocimiento para bases de conocimientos requeridas por el SIAD. Se detallan los elementos fundamentales del diseño y la implementación de la nueva versión del ICASIAD.. 2.1. Sistemas basados en el conocimiento construidos desde SIAD El SIAD constituye un ambiente inteligente con posibilidades gráficas orientado a la creación de sistemas CAD. El complemento natural del SIAD es la Base de Conocimiento (BC), en la cual se define la especificidad del objeto de diseño. La conjugación de ambos (SIAD + BC) produce un sistema CAD inteligente con propósito específico para el diseño de una clase concreta de objeto.. El conocimiento requerido para ejecutar el proceso de diseño para el t ipo de objeto deseado se puede describir mediante la sintaxis y semántica de una o varias BC del SIAD. Para poder describir un objeto de diseño a partir de una BC del SIAD se requiere de:  El diseño del objeto específico consiste en el cálculo de todos los parámetros (magnitudes) que lo caracterizan.  Las restricciones del diseño, en caso de existir, se expresan como expresiones lógicas entre los parámetros del diseño.  Cada parámetro del diseño se evalúa por el diseñador o existen reglas para calcularlo.. 2.1.1. Base de conocimiento para el SIAD A partir de un arduo estudio y de la propia experiencia de los desarrolladores de las versiones anteriores del SIAD se creó para dicho sistema una FRC orientada a tareas de diseño en ingeniería (González and Hernández, 2001a). La FRC está orientada fundamentalmente a la categoría definida como diseño de variantes, en el cual la tarea 20.

(31) CAPÍTULO 2. DISEÑO DE UN INGENIERO DE CONOCIMIENTO AUTOMATIZADO PARA EL SIAD DEL SISTEMA OPERATIVO WINDOWS de diseño se realiza a partir de un modelo físico conocido, y donde un producto nuevo se obtiene al variar algunos parámetros del modelo.. La FRC está definida en términos de la combinación de conocimiento declarativo y procedimental. El conocimiento declarativo se describe mediante marcos y reglas de producción, mientras que el conocimiento procedimental se describe mediante procedimientos escritos en un dialecto del lenguaje Pascal. En la FRC se utilizan marcos para almacenar la información referente al objeto de diseño y a cada uno de los parámetros que intervienen en su cálculo, y reglas de producción para describir las posibles expresiones a utilizar para calcular cada uno de los parámetros.. El modelo físico del producto se describe usando dos tipos de marcos. El primer tipo permite almacenar el conocimiento sobre el producto como un todo, y se denomina marco objeto de diseño u objeto independiente (OI), mientras que el otro tipo se utiliza para representar el conocimiento sobre cada parámetro del producto, por lo que se llama marco parámetro de diseño u objeto elemental (OE). Por lo tanto, una BC que almacene el modelo físico de un producto está constituida de un marco OI y tantos marcos OE como parámetros de diseño tenga el producto. La representación en notación BNF de la BC se encuentra en el Anexo 1.Los archivos que contienen bases de conocimientos para el SIAD, son de tipo texto y tienen extensión “.bcs”.. 2.1.1.1. Información sobre el objeto de diseño Un marco de objeto de diseño está formado por los siguientes aspectos:. Nombre del producto (OI_N): Es una cadena de 1 a 15 caracteres que permite identificar el producto que se diseña en la BC, es decir al OI. Su ubicación en el OI es inmediatamente después del primer delimitador válido de la sección del OI ({). Los caracteres admisibles son: _0123456789áéíóúÁÉÍÓÚ abcdefghijklmnñopqrstuvwxyzABCDEFGHIJKLMNÑOPQRSTUVWXYZ. 21.

(32) CAPÍTULO 2. DISEÑO DE UN INGENIERO DE CONOCIMIENTO AUTOMATIZADO PARA EL SIAD DEL SISTEMA OPERATIVO WINDOWS Descripción del producto (OI_D): Es una cadena de no más de 100 caracteres que brinda información sobre el producto que se diseña en la BC, es decir al OI. Su ubicación en el OI es inmediatamente después del delimitador (%), y este se ubica en la línea posterior al aspecto OI_N. El aspecto OI_D es opcional en la BC, pero se recomienda a los usuarios del sistema utilizarla siempre por una mejor claridad del diseño. Los caracteres admisibles son: El carácter espacio +-*/<>=()~!@#$%^&.,;:?'\"\\_0123456789áéíóúÁÉÍÓÚ abcdefghijklmnñopqrstuvwxyzABCDEFGHIJKLMNÑOPQRSTUVWXYZ. Pre acciones del diseño (OI_PREA): Es opcional en la BC. Contiene una lista de acciones (ver Anexo 5) que se ejecutan antes de comenzar el proceso de cálculo. El delimitador utilizado para la definición del aspecto OI_PREA en el OI es el símbolo (!). Cada acción es una cadena escrita cada una en líneas apartes de no más de 200 caracteres y los caracteres admisibles son: El carácter espacio +-*/<>=()~!@#$%^&.,;:?'\"\\_0123456789áéíóúÁÉÍÓÚ abcdefghijklmnñopqrstuvwxyzABCDEFGHIJKLMNÑOPQRSTUVWXYZ. Parámetros de diseño importados (OI_PDI): Es opcional en la BC. Contiene una lista de OE representados por sus nombres que no se definen como OE en la actual BC pero que están en algunas expresiones del mismo. Estos OE se deben valorizar siempre como datos iníciales antes de comenzar el proceso de cálculo. El delimitador utilizado para la definición del aspecto OI_PDI en el OI es el símbolo ($). Cada expresión es una cadena escrita cada una en líneas apartes de 1 a 15 caracteres y los caracteres admisibles son: _0123456789áéíóúÁÉÍÓÚ abcdefghijklmnñopqrstuvwxyzABCDEFGHIJKLMNÑOPQRSTUVWXYZ. Restricciones del diseño (OI_RD): Es opcional en la BC. Contiene una lista de expresiones que pueden ser de dos tipos: 22.

(33) CAPÍTULO 2. DISEÑO DE UN INGENIERO DE CONOCIMIENTO AUTOMATIZADO PARA EL SIAD DEL SISTEMA OPERATIVO WINDOWS 1. expresión lógica (verAnexo3). 2. expresión lógica tipo implica. Las expresiones lógicas tipo implica se representan de la siguiente forma: expresión lógica -> expresión lógica. Esto significa que solo si se cumple la condición antecedente, se pasa a evaluar la segunda expresión, y de la evaluación de esta última dependería entonces el resultado de la expresión. Si la primera condición no se cumple, entonces se devolvería que el resultado es verdadero sin pasar a evaluar la segunda condición. Las expresiones en el aspecto OI_RD son muy importantes, ya que establecen las relaciones de consistencia entre los OE del OI. El delimitador utilizado para la definición del aspecto OI_RD en el OI es el símbolo (&). Cada expresión es una cadena escrita cada una en líneas apartes de no más de 200 caracteres y los caracteres admisibles son: El carácter espacio +-*/<>=()~!@#$%^&.,;:?'\"\\_0123456789áéíóúÁÉÍÓÚ abcdefghijklmnñopqrstuvwxyzABCDEFGHIJKLMNÑOPQRSTUVWXYZ. Funciones para evaluar la solución (OI_FES): Es opcional en la BC. Contiene una lista de funciones (ver Anexo 4) que son expresiones del tipo: expresión lógica ->expresión aritmética Las expresiones del aspecto OI_FES son muy útiles ya que al utilizarlas se puede establecer un criterio para la calidad de cada una de las variantes de diseños hallad as. Se toma el valor de la evaluación de solo una de ellas, aquella que primero cumple con su expresión lógica antecedente. Estas expresiones se evalúan siempre que se encuentre una nueva variante de diseño, es decir, una nueva solución. El delimitador utilizado para la definición del aspecto OI_FES en el OI es el símbolo (?). Cada expresión es una cadena escrita cada una en líneas apartes de no más de 200 caracteres y los caracteres admisibles son: El carácter espacio +-*/<>=()~!@#$%^&.,;:?'\"\\_0123456789áéíóúÁÉÍÓÚ abcdefghijklmnñopqrstuvwxyzABCDEFGHIJKLMNÑOPQRSTUVWXYZ. 23.

(34) CAPÍTULO 2. DISEÑO DE UN INGENIERO DE CONOCIMIENTO AUTOMATIZADO PARA EL SIAD DEL SISTEMA OPERATIVO WINDOWS Parámetros de diseño para generar información para AutoLisp (OI_PAL): Es opcional en la BC. Contiene una lista de OE representados por sus nombres. Estos OE se incluirán en el fichero SETQ para AutoLisp, el cual tiene la siguiente forma: ( setq< nomb_par >< valor > ) El delimitador utilizado para la definición del aspecto OI_PAL en el OI es el símbolo (@). Cada expresión es una cadena escrita cada una en líneas apartes de 1 a 15 caracteres y los caracteres admisibles son: _0123456789áéíóúÁÉÍÓÚ abcdefghijklmnñopqrstuvwxyzABCDEFGHIJKLMNÑOPQRSTUVWXYZ. Post acciones del diseño (OI_POSA): Es opcional en la BC. Contiene una lista de acciones que se ejecutan al terminar el proceso de cálculo. El delimitador utilizado para la definición del aspecto OI_POSA en el OI es el símbolo (#). Cada acción es una cadena escrita cada una en líneas apartes de no más de 200 caracteres y los caracteres admisibles son: El carácter espacio +-*/<>=()~!@#$%^&.,;:?'\"\\_0123456789áéíóúÁÉÍÓÚ abcdefghijklmnñopqrstuvwxyzABCDEFGHIJKLMNÑOPQRSTUVWXYZ. Cada aspecto del OI se separa según el tipo, haciendo uso de los delimitadores. Ver Anexo 2. Por ejemplo, para el del diseño de un triángulo la definición marco del OI puede ser: { TRIA NGULO %Cálculo de un triángulo & A>20 and A<=100 A<>90 & }. Donde los caracteres { y } agrupan el conocimiento referido al OI de nombre TRIANGULO y el delimitador & agrupa restricciones de diseño.. 24.

(35) CAPÍTULO 2. DISEÑO DE UN INGENIERO DE CONOCIMIENTO AUTOMATIZADO PARA EL SIAD DEL SISTEMA OPERATIVO WINDOWS 2.1.1.2. Información sobre cada parámetro de diseño Cada marco de parámetro de diseño está formado por los siguientes aspectos:. Nombre del parámetro (OE_N): Es una cadena de 1 a 15 caracteres que permite identificar al OE. Su ubicación en el OE es inmediatamente después del primer delimitador válido de la sección del OE ([). Los caracteres admisibles son: _0123456789áéíóúÁÉÍÓÚ abcdefghijklmnñopqrstuvwxyzABCDEFGHIJKLMNÑOPQRSTUVWXYZ. Descripción del parámetro (OE_D): Es una cadena de no más de 100 caracteres que brinda información sobre el OE que se diseña en la BC. Su ubicación en el OE es inmediatamente después del delimitador (%), y este se ubica en la línea posterior al aspecto OE_N. El aspecto OE_D es opcional en la BC, pero se recomienda a los usuarios del sistema utilizarla siempre por una mejor claridad del diseño. Los caracteres admisibles son: El carácter espacio +-*/<>=()~!@#$%^&.,;:?'\"\\_0123456789áéíóúÁÉÍÓÚ abcdefghijklmnñopqrstuvwxyzABCDEFGHIJKLMNÑOPQRSTUVWXYZ. Dominio del parámetro (OE_DOM): Es opcional en la BC. Contiene una lista de valores normados o de uso más frecuente del OE. Estos valores pueden ser cadenas o números. Este aspecto es muy útil sobre todo para que el diseñador pueda evaluar manualmente dicho OE, cuando quiera darlo como un dato inicial. Se recomienda utilizar en OE que tengan un conjunto finito de valores normados o de uso más frecuente. El delimitador utilizado para la definición del aspecto OE_DOM en el OE es el símbolo (@). Cada valor es una cadena escrita cada una en líneas apartes de 1 a 15 caracteres y los caracteres admisibles son: _0123456789áéíóúÁÉÍÓÚ abcdefghijklmnñopqrstuvwxyzABCDEFGHIJKLMNÑOPQRSTUVWXYZ. 25.

(36) CAPÍTULO 2. DISEÑO DE UN INGENIERO DE CONOCIMIENTO AUTOMATIZADO PARA EL SIAD DEL SISTEMA OPERATIVO WINDOWS Pre acciones de evaluación (OE_PREA): Es opcional en la BC. Contiene una lista de acciones (ver Anexo 5) que se ejecutan antes de comenzar el proceso de cálculo. El delimitador utilizado para la definición del aspecto OE_PREA en el OE es el símbolo (!). Cada acción es una cadena escrita cada una en líneas apartes de no más de 200 caracteres y los caracteres admisibles son: El carácter espacio +-*/<>=()~!@#$%^&.,;:?'\"\\_0123456789áéíóúÁÉÍÓÚ abcdefghijklmnñopqrstuvwxyzABCDEFGHIJKLMNÑOPQRSTUVWXYZ. Parámetros antecesores (OE_PA): Es opcional en la BC. Contiene una lista de OE representados por sus nombres. Los valores de estos OE influyen en el cálculo del valor del OE al que corresponde el marco. La utilidad de esta información está dada por el hecho de que si durante el proceso de diseño se llega a un estado en el cual hay que volver a calcular el OE, con este conocimiento se puede determinar desde qué OE comenzar a volver a calcular. Por medio de este conocimiento el diseñador puede introducir su propia experiencia para facilitar la búsqueda de soluciones. El delimitador utilizado para la definición del aspecto OE_PA en el OE es el símbolo ($). Cada expresión es una cadena escrita cada una en líneas apartes de 1 a 15 caracteres y los caracteres admisibles son: _0123456789áéíóúÁÉÍÓÚ abcdefghijklmnñopqrstuvwxyzABCDEFGHIJKLMNÑOPQRSTUVWXYZ. Procedimientos para el cálculo del valor del parámetro (OE_PCV): Es opcional en la BC. Contiene una lista de procedimientos para calcular un valor para el OE. Estos procedimientos son expresiones del tipo: expresión lógica -> expresión aritmética (ver Anexo 3) Los procedimientos para calcular el valor también pueden ser iterativos, y se expresan de la siguiente forma: expresión lógica ->repeat( expresión aritmética) Esto quiere decir que en el proceso de cálculo de una o varias variantes de diseño se evaluará este procedimiento para calcular el valor iterativamente hasta que deje de 26.

(37) CAPÍTULO 2. DISEÑO DE UN INGENIERO DE CONOCIMIENTO AUTOMATIZADO PARA EL SIAD DEL SISTEMA OPERATIVO WINDOWS cumplirse la expresión lógica. Los procedimientos para calcular el valor constituyen las fuentes principales en la evaluación de los OE del OI, ya que si el diseñador no valoriza un OE como dato inicial, para que este pueda ser valorizado, entonces debe ser evaluado satisfactoriamente alguno de sus procedimientos para calcular el valor. Los OE que no contengan procedimientos para calcular el valor, tendrán que darse entonces como datos iníciales para poder comenzar el proceso de cálculo. El delimitador utilizado para la definición del aspecto OE_PCV en el OE es el símbolo (/). Cada procedimiento para calcular el valor del OE es una cadena escrita cada una en líneas apartes de no más de 200 caracteres y los caracteres admisibles son: El carácter espacio +-*/<>=()~!@#$%^&.,;:?'\"\\_0123456789áéíóúÁÉÍÓÚ abcdefghijklmnñopqrstuvwxyzABCDEFGHIJKLMNÑOPQRSTUVWXYZ. Medias acciones de evaluación (OE_MEDA): Es opcional en la BC. Contiene una lista de acciones que se ejecutan inmediatamente después de haber intentado evaluar el OE en el proceso de cálculo. El delimitador utilizado para la definición del aspecto OE_MEDA en el OE es el símbolo. Cada acción es una cadena escrita cada una en líneas apartes de no más de 200 caracteres y los caracteres admisibles son: El carácter espacio +-*/<>=()~!@#$%^&.,;:?'\"\\_0123456789áéíóúÁÉÍÓÚ abcdefghijklmnñopqrstuvwxyzABCDEFGHIJKLMNÑOPQRSTUVWXYZ. Procedimientos para el cálculo del peso del parámetro (OE_PCP): Es opcional en la BC. Contiene una lista de procedimientos para calcular el peso del OE. Estos procedimientos son expresiones del tipo: expresión lógica -> expresión aritmética Estos procedimientos para calcular el peso se evalúan siempre que se halle una nueva variante de diseño y da la medida del peso que tendrá el nuevo valor del OE en la calidad de la variante de diseño calculada. Son entonces los pesos de cada OE, los valores que se tendrán en cuenta a la hora de evaluar las funciones del aspecto Funciones para Evaluar la Solución del OI. En caso de que se encuentren OE que 27.

(38) CAPÍTULO 2. DISEÑO DE UN INGENIERO DE CONOCIMIENTO AUTOMATIZADO PARA EL SIAD DEL SISTEMA OPERATIVO WINDOWS estén explícitos en las funciones del aspecto Funciones para Evaluar la Solución del OI, pero que no tengan algún procedimiento para el cálculo del peso, se toman entonces de estos los valores calculados en el proceso de cálculo. El delimitador utilizado para la definición del aspecto OE_PCP en el OE es el símbolo (?). Cada procedimiento para calcular el peso del OE es una cadena escrita cada una en líneas apartes de no más de 200 caracteres y los caracteres admisibles son: El carácter espacio +-*/<>=()~!@#$%^&.,;:?'\"\\_0123456789áéíóúÁÉÍÓÚ abcdefghijklmnñopqrstuvwxyzABCDEFGHIJKLMNÑOPQRSTUVWXYZ. Post acciones de evaluación (OE_POSA): Es opcional en la BC. Contiene una lista de acciones que se ejecutan al terminar el proceso de cálculo. El delimitador utilizado para la definición del aspecto OE_POSA en el OE es el símbolo (#). Cada acción es una cadena escrita cada una en líneas apartes de no más de 200 caracteres y los caracteres admisibles son: El carácter espacio +-*/<>=()~!@#$%^&.,;:?'\"\\_0123456789áéíóúÁÉÍÓÚ abcdefghijklmnñopqrstuvwxyzABCDEFGHIJKLMNÑOPQRSTUVWXYZ. Para el caso ejemplo, diseño de un triángulo, la definición de los marcos para los parámetros de diseño pudieran ser:. 28.

(39) CAPÍTULO 2. DISEÑO DE UN INGENIERO DE CONOCIMIENTO AUTOMATIZADO PARA EL SIAD DEL SISTEMA OPERATIVO WINDOWS [ altura %Altura del triángulo @ 90 80 70 60 55 42 @ ] [ base %Base del triángulo / ->altura/2 ->altura/3 / ]. Donde altura y base son OE que representan a dos parámetros de diseño del triángulo, los caracteres [ y ] agrupan el conocimiento referido a cada OE. Los delimitadores @ y / se utilizan para describir el conocimiento concerniente a las facetas dominio y procedimientos de cálculo respectivamente, ver Anexo 2.. 2.2. Diseño de la nueva versión del ICASIAD El diseño del ICASIAD se concibe para brindar una interfaz visual que permita al usuario confeccionar y editar la estructura interna de las BC interpretable por el SIAD del sistema operativo Windows con el conocimiento adquirido del mismo, independizándolo del formalismo de representación del conocimiento que se emplee en las BC.. Se concibe un usuario, el cual no es conocedor de la FRC empleada, aunque puede que la conozca. Por tal razón, el actor representado por la figura 2.1.. 29.

(40) CAPÍTULO 2. DISEÑO DE UN INGENIERO DE CONOCIMIENTO AUTOMATIZADO PARA EL SIAD DEL SISTEMA OPERATIVO WINDOWS Los usuarios pueden trabajar ya sea mediante el mouse o el teclado sobre la interfaz visual, permitiéndole crear tantas BC como desee, así como el trabajo con una o más BC.. Cada BC está a disposición del usuario para su edición ya sea para eliminarla, como para cambiar el nombre o la dirección física en el medio de almacenamiento en que se encuentre el fichero contenedor de la misma, así como editar cada marco y los aspectos correspondiente a los mismos que conforman una BC para el SIAD.. Figura 2.1. Diagrama de casos de usos.. 2.2.1. Diseño de la inte rfaz visual En el diseño de la interfaz visual se concibe visualizar el contenido de BC de manera que el usuario pueda adentrarse en las mismas de forma rápida y fácil.. La interfaz general del ICASIAD se estructura de cuatro paneles fundamentales: una barra de menús en la parte superior, seguidamente una barra de herramientas,. 30.

(41) CAPÍTULO 2. DISEÑO DE UN INGENIERO DE CONOCIMIENTO AUTOMATIZADO PARA EL SIAD DEL SISTEMA OPERATIVO WINDOWS posteriormente una barra de contenidos que ocupa la mayor parte de la pantalla y por último una barra de estado.. Para esto se valora la necesidad de un panel, llamado barra de contenido, que esté compuesto por tres paneles que visualicen bases de conocimiento en forma de árbol horizontal, de izquierda a derecha. Ver figura 2.2. Para cada edición el usuario puede tener acceso al teclado o al mouse.. Con el panel más a la izquierda (panel Base de Conocimiento) se visualizan las bases de conocimiento con las que se trabaja y permite la selección de una BC para mostrar su contenido en los otros paneles. Las bases de conocimiento son intercambiables y en caso de requerirse por el usuario se cierra cualquiera de las BC.. En un segundo panel (panel Estructura) a la derec ha del anterior se muestran los marcos que conforman la BC seleccionada. En este panel, son intercambiables OE de acuerdo a la posición que ocupen y es posible crear nuevos o eliminar alguno creado anteriormente.. En el tercer panel (panel Propiedades) se visualiza en dependencia del marco en selección del panel anterior, cada faceta que lo conforma. Son intercambiables las facetas definidas y es factible crear una nueva o modificar las ya creadas.. El en diseño de la barra de menús, se concibe que las opciones de los mismos, permitan ejecutar todas las acciones que pueden realizarse en cualquiera de los tres paneles de la barra de contenido, en dependencia del seleccionado, crean y/o abren bases de conocimientos, brindan ayuda al usuario o finalizan la ejecución del ICASIAD.. La barra de herramientas se asocia a la barra de menús. Se diseña para que agilice el uso de los menús de la barra de menús, pero con la limitante de que solo brinda las acciones de uso más frecuente. 31.

(42) CAPÍTULO 2. DISEÑO DE UN INGENIERO DE CONOCIMIENTO AUTOMATIZADO PARA EL SIAD DEL SISTEMA OPERATIVO WINDOWS La barra de estado se define con un fin informativo. En cada momento el usuario recibe información sobre el uso de las teclas posibles o el estado dela BC seleccionada.. Figura 2.2. Panorámica de la interfaz visual del ICASIAD. La ventana del ICASIAD brinda todas las funciones de una ventana correspondiente al sistema operativo Windows. Puede minimizarse, maximizarse y cerrarse. También permite cambiar las dimensiones de la ventana.. 32.

(43) CAPÍTULO 2. DISEÑO DE UN INGENIERO DE CONOCIMIENTO AUTOMATIZADO PARA EL SIAD DEL SISTEMA OPERATIVO WINDOWS 2.3. Implementación de la nueva versión del ICASIAD La implementación del ICASIAD se basa en el patrón de arquitectura de software que separa los datos y la lógica de negocio de la interfaz visual, es decir el patrón de diseño Modelo-Vista-Controlador (MVC). Se seleccionó este patrón de diseño porque permite una clara separación entre los componentes de un programa; lo cual nos permite implementarlos por separado y así proporcionar una clara separación entre las distintas responsabilidades de la aplicación.. Siguiendo la separación de conceptos de este patrón de diseño, se dividió el ICASIAD en tres bloques funcionales: 1. Clases para almacenar la información. 2. Clases para el control y la realización de acciones con la información. 3. Clases para visualizar la información.. Con las clases para almacenar la información se describe la información con la cual el sistema opera, por lo tanto gestiona todos los accesos a dicha información, tanto consultas como actualizaciones. Envía a las clases para visualizar la información aquella parte de la información que en cada momento se le solicita para que sea mostrada (típicamente a un usuario). Las peticiones de acceso o manipulación de información llegan a estas clases para almacenar la información a través de las clases para el control y la realización de acciones con la información.. Con las clases para el control y la realización de acciones con la información se responde a eventos (usualmente acciones del usuario) e invoca peticiones a las clases para almacenar la información cuando se hace alguna solicitud sobre la información (por ejemplo, editar un parámetro de diseño en una base de conocimiento). Estas clases hacen de intermediario entre las clases para visualizar la información y las clases para almacenar la información.. 33.

(44) CAPÍTULO 2. DISEÑO DE UN INGENIERO DE CONOCIMIENTO AUTOMATIZADO PARA EL SIAD DEL SISTEMA OPERATIVO WINDOWS Con las clases para visualizar la información se presenta la información almacenada en las clases para almacenar la información en un formato adecuado para interactuar, es decir la interfaz visual.. En el Anexo 6 se representan los diagramas de clases correspondientes a estas clases. A continuación, se detallan las clases más importantes que conforman la aplicación y se especifican los atributos y métodos más significativos.. 2.3.1. Clases para almacenar la información Las clases principales utilizadas en el ICASIAD para el almacenamiento de la información de las BC son las siguientes:. BC_OE: Clase que contiene la información sobre el OE. Sus atributos principales son: bc_oe_nombre: Permite identificar al OE. bc_oe_descripcion: Brinda información sobre el OE que se diseña en la BC. bc_oe_lde_dominiodelparametro: Contiene una lista de valores normados y/o de uso más frecuente del OE. bc_oe_lde_preaccionesdeevaluacion: Contiene una lista de acciones (ver Anexo 5). bc_oe_lde_parametrosantecesores: Contiene una lista de OE representados por sus nombres. bc_oe_lde_procedimentosparaelcalculodelvalordelparametro: Contiene una lista de procedimientos para calcular un valor para el OE. bc_oe_lde_mediaaccionesdeevaluacion: Contiene una lista de acciones. bc_oe_lde_procedimentosparaelcalculodelpesodelparametro: Contiene una lista de procedimientos para calcular el peso del OE. bc_oe_lde_postaccionesdeevaluacion: Contiene una lista de acciones.. BC_OI: Clase que contiene la información sobre el OI. Sus atributos principales son: bc_oi_nombre: Permite identificar el producto que se diseña en la BC, es decir al OI. 34.

Figure

Figura 2.1. Diagrama de casos de usos.
Figura 2.2. Panorámica de la interfaz visual del ICASIAD.
Figura 2.3. Adicionar un parámetro de diseño a la estructura de una base de  conocimiento
Figura 3.1. Proceso de inicio del sistema.
+7

Referencias

Documento similar

En el instrumento se recopila toda la información necesaria para realizar el estudio pues es importante almacenar lo referente a los datos generales del discapacitado, las

El segundo paso es elegir la comunidad autónoma o comunidades que se contemplan como lugares en los que cursar los estudios. Para ello, el usuario debe marcar las elegidas

El segundo paso es elegir la comunidad autónoma o comunidades que se contemplan como lugares en los que cursar los estudios. Para ello, el usuario debe marcar las elegidas

[r]

SVP, EXECUTIVE CREATIVE DIRECTOR JACK MORTON

Social Media, Email Marketing, Workflows, Smart CTA’s, Video Marketing. Blog, Social Media, SEO, SEM, Mobile Marketing,

Missing estimates for total domestic participant spend were estimated using a similar approach of that used to calculate missing international estimates, with average shares applied

The part I assessment is coordinated involving all MSCs and led by the RMS who prepares a draft assessment report, sends the request for information (RFI) with considerations,