
EXPRESS es un estándar para el lenguaje genérico de modelado de datos para datos de productos . EXPRESS está formalizado en la norma ISO para el intercambio de modelos de productos STEP (ISO 10303) y estandarizado como ISO 10303-11. [ 1 ]
Descripción general
Los modelos de datos definen formalmente los objetos de datos y las relaciones entre ellos para un dominio de interés. Algunas aplicaciones típicas de los modelos de datos incluyen el soporte para el desarrollo de bases de datos y la facilitación del intercambio de datos para un área de interés particular. Los modelos de datos se especifican en un lenguaje de modelado de datos. [ 2 ] EXPRESS es un lenguaje de modelado de datos definido en la norma ISO 10303-11, el Manual de Referencia del Lenguaje EXPRESS. [ 3 ]
Un modelo de datos EXPRESS puede definirse de dos maneras: textual y gráfica. Para la verificación formal y como entrada para herramientas como SDAI, la representación textual en un archivo ASCII es la más importante. La representación gráfica, por otro lado, suele ser más adecuada para el uso humano, como explicaciones y tutoriales. La representación gráfica, denominada EXPRESS-G, no puede representar todos los detalles que se pueden formular en formato textual.
EXPRESS es similar a lenguajes de programación como Pascal . Dentro de un esquema, se pueden definir diversos tipos de datos junto con restricciones estructurales y reglas algorítmicas. Una característica principal de EXPRESS es la posibilidad de validar formalmente un conjunto de tipos de datos, lo que permite verificar todas las reglas estructurales y algorítmicas.
EXPRESS-G
EXPRESS-G es una notación gráfica estándar para modelos de información . [ 4 ] Es un complemento del lenguaje EXPRESS para mostrar definiciones de entidades y tipos, relaciones y cardinalidad. [ 5 ] Esta notación gráfica admite un subconjunto del lenguaje EXPRESS. Una de las ventajas de usar EXPRESS-G sobre EXPRESS es que la estructura de un modelo de datos se puede presentar de una manera más comprensible. Una desventaja de EXPRESS-G es que las restricciones complejas no se pueden especificar formalmente. La Figura 1 es un ejemplo. El modelo de datos presentado en la figura podría usarse para especificar los requisitos de una base de datos para una colección de discos compactos de audio (CD). [ 2 ]
Ejemplo sencillo

Un modelo de datos EXPRESS simple se ve como en la figura 2, y el código es así:
Familia SCHEMA; ENTIDAD Persona SUPERTIPO RESUMEN DE (UNO DE (Masculino, Femenino)); nombre: CADENA; madre: OPCIONAL Femenino; padre: OPCIONAL Masculino; FIN_ENTIDAD; ENTIDAD Femenino SUBTIPO DE (Persona); FIN_ENTIDAD; ENTIDAD Masculino SUBTIPO de (Persona); FIN_ENTIDAD; FIN_ESQUEMA;
El modelo de datos está incluido en el esquema EXPRESS Family . Contiene una entidad de supertipo Person con los subtipos Male y Female . Dado que Person se declara como ABSTRACT, solo pueden existir ocurrencias de uno (ONEOF) de los subtipos Male o Female . Cada ocurrencia de una persona tiene un atributo de nombre obligatorio y, opcionalmente, los atributos mother y father . Existe un estilo de lectura fijo para los atributos de algunos tipos de entidad:
- Una mujer puede desempeñar el rol de madre para una persona.
- Un hombre puede desempeñar el rol de padre para una persona.
Bloques de construcción EXPRESS
Tipos de datos
EXPRESS ofrece una serie de tipos de datos, con símbolos de tipo de datos específicos de la notación EXPRESS-G: [ 2 ]

- Tipo de dato Entidad: Este es el tipo de dato más importante en EXPRESS. Se describe con más detalle a continuación. Los tipos de datos Entidad pueden relacionarse de dos maneras: mediante un árbol de subtipos y/o mediante atributos.
- Tipo de datos de enumeración: Los valores de enumeración son cadenas simples como rojo, verde y azul para una enumeración RGB. Si un tipo de enumeración se declara extensible, puede extenderse en otros esquemas.
- Tipo de datos definido: Esto especializa aún más otros tipos de datos ; por ejemplo, definir un tipo de datos positivo que sea de tipo entero con un valor > 0.
- Seleccionar tipo de datos: Las selecciones definen una elección o una alternativa entre diferentes opciones. Las más comunes son las selecciones entre diferentes tipos de entidades. Son menos frecuentes las selecciones que incluyen tipos definidos. Si un tipo de enumeración se declara extensible, puede extenderse en otros esquemas.
- Tipo de datos simple
- Cadena: Este es el tipo simple más utilizado. Las cadenas EXPRESS pueden tener cualquier longitud y contener cualquier carácter (ISO 10646/Unicode).
- Binario: Este tipo de datos se utiliza muy raramente. Abarca una cantidad de bits (no bytes). En algunas implementaciones, el tamaño está limitado a 32 bits.
- Lógico: Similar al tipo de dato booleano, un valor lógico tiene los posibles valores VERDADERO y FALSO y, además, DESCONOCIDO.
- Booleano: Con los valores booleanos VERDADERO y FALSO.
- Número: El tipo de dato número es un supertipo tanto de entero como de real. La mayoría de las implementaciones utilizan un tipo double para representar un tipo real, incluso si el valor real es un entero.
- Entero: En principio, los enteros EXPRESS pueden tener cualquier longitud, pero la mayoría de las implementaciones los restringen a un valor con signo de 32 bits.
- Real: Idealmente, un valor real EXPRESS no tiene límite de precisión ni de tamaño. Sin embargo, en la práctica, un valor real se representa mediante un valor de punto flotante de tipo double.
- Tipo de datos de agregación: Los tipos posibles de agregación son SET, BAG, LIST y ARRAY. Mientras que SET y BAG no tienen un orden específico, LIST y ARRAY sí lo tienen. Un BAG puede contener un valor determinado más de una vez; esto no está permitido para SET. Un ARRAY es el único agregado que puede contener miembros no definidos. Esto no es posible para SET, LIST ni BAG. Los miembros de un agregado pueden ser de cualquier otro tipo de datos.
Hay algunos aspectos generales que conviene mencionar sobre los tipos de datos.
- Los tipos de datos construidos se pueden definir dentro de un esquema EXPRESS. Se utilizan principalmente para definir entidades y para especificar el tipo de atributos de entidad y miembros agregados.
- Los tipos de datos pueden utilizarse de forma recursiva para construir tipos de datos cada vez más complejos. Por ejemplo, es posible definir una LISTA de un ARRAY de una SELECCIÓN de entidades u otros tipos de datos. Si tiene sentido definir tales tipos de datos es otra cuestión.
- EXPRESS define un par de reglas sobre cómo se puede especializar aún más un tipo de dato. Esto es importante para los atributos redeclarados de las entidades.
- Los tipos de datos genéricos se pueden utilizar para procedimientos, funciones y entidades abstractas.
Atributo de entidad
Los atributos de entidad permiten añadir "propiedades" a las entidades y relacionar una entidad con otra en un rol específico. El nombre del atributo especifica dicho rol. La mayoría de los tipos de datos pueden funcionar directamente como tipo de atributo, incluyendo la agregación.
Existen tres tipos de atributos: explícitos, derivados e inversos. Todos ellos pueden redeclararse en un subtipo. Además, un atributo explícito puede redeclararse como derivado en un subtipo. No es posible realizar ningún otro cambio en el tipo de atributo.
- Los atributos explícitos son aquellos con valores directos visibles en un archivo STEP.
- Los atributos derivados obtienen sus valores de una expresión. En la mayoría de los casos, la expresión hace referencia a otros atributos de ESTA instancia. La expresión también puede utilizar funciones EXPRESS.
- Los atributos inversos no añaden "información" a una entidad, sino que solo nombran y restringen un atributo explícito a una entidad desde el otro extremo.
Símbolos de atributos específicos de la notación EXPRESS-G: [ 2 ]

Supertipos y subtipos
Una entidad puede definirse como un subtipo de una o varias entidades (¡ se permite la herencia múltiple !). Un supertipo puede tener cualquier número de subtipos. En STEP, es muy común construir grafos de sub-supertipos muy complejos. Algunos grafos relacionan 100 o más entidades entre sí.
Se puede construir una instancia de entidad para una sola entidad (si no es abstracta) o para una combinación compleja de entidades en un grafo de subtipos y supertipos. En grafos grandes, el número de combinaciones posibles puede alcanzar niveles astronómicos. Para restringir las combinaciones posibles, se introdujeron restricciones de supertipo especiales, como ONEOF y TOTALOVER. Además, se puede declarar una entidad como abstracta para garantizar que no se pueda construir ninguna instancia solo de esa entidad, sino únicamente si contiene un subtipo no abstracto.
Restricciones algorítmicas
Las entidades y los tipos de datos definidos pueden restringirse aún más con reglas WHERE . Las reglas WHERE también forman parte de las reglas globales. Una regla WHERE es una expresión que debe evaluarse como VERDADERA; de lo contrario, la población de un esquema EXPRESS no será válida. Al igual que los atributos derivados, estas expresiones pueden invocar funciones EXPRESS, que a su vez pueden invocar procedimientos EXPRESS. Las funciones y los procedimientos permiten formular sentencias complejas con variables locales, parámetros y constantes, de forma muy similar a un lenguaje de programación.
El lenguaje EXPRESS puede describir reglas locales y globales. Por ejemplo:
ENTIDAD unidad_de_área SUBTIPO DE ( unidad_nombrada ) ; DONDE WR1 : ( SELF \ unidad_nombrada.dimensiones.exponente_longitud = 2 ) Y ( SELF \ unidad_nombrada.dimensiones.exponente_masa = 0 ) Y ( SELF \ unidad_nombrada.dimensiones.exponente_tiempo = 0 ) Y ( SELF \ unidad_nombrada.dimensiones.exponente_corriente_eléctrica = 0 ) Y ( SELF \ unidad_nombrada.dimensiones.exponente_temperatura_termodinámica = 0 ) Y ( SELF \ unidad_nombrada.dimensiones.exponente_cantidad_sustancia = 0 ) Y ( SELF \ unidad_nombrada.dimensiones.exponente_intensidad_luminosa = 0 ) ; FIN_ENTIDAD ; -- unidad_de_áreaEste ejemplo describe que la entidad area_unit debe tener un valor cuadrado de longitud. Para ello, el atributo dimensions.length_exponent debe ser igual a 2 y todos los demás exponentes de las unidades básicas del SI deben ser 0.
Otro ejemplo:
TIPO day_in_week_number = ENTERO ; DONDE WR1 : ( 1 <= SELF ) Y ( SELF <= 7 ); FIN_TIPO ; -- day_in_week_numberEs decir, significa que el valor semanal no puede exceder de 7.
Así pues, puede describir algunas reglas a sus entidades. Encontrará más detalles sobre los ejemplos proporcionados en la norma ISO 10303-41 .
Véase también
- Temas relacionados con la norma ISO
- ISO 10303 : Norma ISO para la representación e intercambio de datos de productos industriales que puedan interpretarse mediante ordenador.
- ISO 10303-21 : Formato de intercambio de datos STEP con estructura ASCII
- ISO 10303-22 : Interfaz estándar de acceso a datos, parte de los métodos de implementación de STEP.
- ISO 10303-28 : STEP-XML especifica el uso del lenguaje de marcado extensible (XML) para representar esquemas EXPRESS.
- ISO 13584 -24: El modelo lógico de PLIB se especifica en EXPRESS
- ISO 13399 : Norma ISO para la representación e intercambio de datos de herramientas de corte.
- ISO/PAS 16739 : Industry Foundation Classes se especifica en EXPRESS
- Lista de piezas STEP (ISO 10303)
- Otros temas relacionados
- Intercambio de datos CAD
- EDIF : Formato de Intercambio de Diseño Electrónico
- Diagrama
- Modelado de propósito general
- Lenguaje de modelado
- Notación sintáctica de Wirth
- DOT (lenguaje de descripción de gráficos)
Referencias
Este artículo incorpora material de dominio público del Instituto Nacional de Estándares y Tecnología.
- ↑ ISO 10303-11:2004 Sistemas de automatización industrial e integración - Representación e intercambio de datos de producto - Parte 11: Métodos de descripción: Manual de referencia del lenguaje EXPRESS
- 1 2 3 4 Michael R. McCaleb (1999). "Un modelo conceptual de datos de sistemas de referencia" . Instituto Nacional de Estándares y Tecnología. Agosto de 1999.
- ↑ Norma internacional ISO 10303-11:1994, Sistemas de automatización industrial e integración — Representación e intercambio de datos de producto — Parte 11: Métodos de descripción: Manual de referencia del lenguaje EXPRESS, Organización Internacional de Normalización, Ginebra, Suiza (1994).
- ↑ 4 Descripción general del lenguaje EXPRESS-G Archivado el 9 de noviembre de 2008 en Wayback Machine . Consultado el 9 de noviembre de 2008.
- ↑ Para obtener información sobre la notación EXPRESS-G, consulte el Anexo B del Manual de Referencia del Lenguaje EXPRESS (ISO 10303-11).
Lecturas adicionales
- ISO 10303 , la página principal de STEP, el estándar para el intercambio de datos de modelos de productos.
- Douglas A. Schenck y Peter R. Wilson, Modelado de información al estilo EXPRESS , Oxford University Press, 1993, ISBN 978-0-19-508714-7
- Fundación de Lenguas EXPRESS , una organización dedicada a promover la familia de lenguas EXPRESS.
- Modelado de datos
- Lenguajes de modelado de datos
- ISO 10303
- Lenguajes de modelado