Modelos basados en marcos

Los sistemas basados en marcos utilizan entidades como marcos y sus propiedades como primitiva de modelado. La primitiva central de modelado es un marco junto con ranuras. Estas ranuras son aplicables solo a los marcos para los que están definidas. La restricción de valores (facetas) puede definirse para cada atributo. Un marco proporciona un contexto para modelar un aspecto de un dominio. Una parte importante de los lenguajes basados en marcos es la posibilidad de herencia entre marcos. La herencia permite heredar atributos junto con sus restricciones. La base de conocimiento consiste entonces en instancias (objetos) de estos marcos.

Un ejemplo del uso del modelo basado en marcos es Open Knowledge Base Connectivity (OKBC), que define una API para acceder a sistemas de representación del conocimiento. Define la mayoría de los conceptos que se encuentran en sistemas basados en marcos, bases de datos de objetos y bases de datos relacionales. La API de OKBC está definida de forma independiente del lenguaje, y existen implementaciones para Common Lisp, Java y C. La API de OKBC proporciona operaciones para manipular conocimiento expresado en un formalismo de representación implícito llamado OKBC Knowledge Model. La conceptualización en OKBC Knowledge Model se basa en marcos, ranuras, facetas, instancias, tipos y constantes. Este modelo de conocimiento soporta una representación orientada a objetos del conocimiento y proporciona un conjunto de constructos representacionales, por lo que puede servir como interlingua para compartir y traducir conocimiento. El OKBC Knowledge Model incluye constantes, marcos, ranuras, facetas, clases, individuos y bases de conocimiento. Para una descripción precisa del modelo se utiliza el lenguaje KIF (véase la sección sobre KIF).

El modelo de conocimiento OKBC asume un universo del discurso compuesto por todas las entidades sobre las que debe expresarse conocimiento. En todo dominio del discurso se asume que todas las constantes de los siguientes tipos básicos están siempre definidas: enteros, números de punto flotante, cadenas, símbolos, listas y clases. También se asume que las constantes lógicas true y false están incluidas en todo dominio del discurso. Las clases son conjuntos de entidades, y todos los conjuntos de entidades se consideran clases.

Un marco es un objeto primitivo que representa una entidad en el dominio del discurso. Un marco se llama marco de clase cuando representa una clase, y se llama marco individual cuando representa un individuo. Un marco tiene asociado un conjunto de ranuras que tienen asociado un conjunto de valores de ranura. Una ranura tiene asociado un conjunto de facetas que imponen ciertas restricciones sobre los valores de la ranura. Las ranuras y los valores de ranura pueden ser nuevamente cualquier entidad en el dominio del discurso, incluidos los marcos. Una clase es un conjunto de entidades que son instancias de esa clase (una entidad puede ser instancia de varias clases). Una clase es un tipo para esas entidades. Las entidades que no son clases se denominan individuos. Los marcos de clase pueden tener asociados template slots y template facets que se considera que se usan en las instancias de las subclases de esa clase. También pueden definirse valores por defecto. Cada ranura o faceta puede contener varios valores. Existen tres tipos de colección: set, bag (sin orden, se permiten múltiples ocurrencias) y list (bag ordenado). Una base de conocimiento (KB) es una colección de clases, individuos, marcos, ranuras, valores de ranura, facetas, valores de faceta, asociaciones marco-ranura y asociaciones marco-ranura-faceta. Las KB se consideran entidades del universo del discurso y se representan mediante marcos. Existen clases, facetas y ranuras estándar definidas con nombres y semántica especificados que expresan entidades utilizadas con frecuencia.