STEP标准描述方法-EXPRESS语言
据模型正式定义数据对象和数据之间的关系,对象为感兴趣的领域。数据模型的一些典型应用包括支持数据库的开发和实现数据在感兴趣的特定领域的交流。数据模型在数据建模语言来指定。 EXPRESS是在ISO 10303-11的EXPRESS语言参考手册定义的数据建模语言。
一个Express数据模型可以通过两种方式来定义,以文字和图形。格式验证和输入如SDAI工具中的ASCII文件的文字表述是最重要的之一。在另一方面的图形表示通常更适合人类使用,如用于解释和教学。图形表示,所谓的EXPRESS- G,是不是能够代表可在文本格式中描述的所有细节。
EXPRESS是非常类似与编程语言,如Pascal。在一个SCHEMA中,各种数据类型可以与结构性约束和算法规则来定义。EXPRESS的一个主要特点是,提供了正式验证数据类型的实例集数的可能性 – 也就是说检查所有的结构和算法规则。EXPRESS 构件块
数据类型(Datatypes)
Express提供了一系列的数据类型,用EXPRESS -G符号的特定数据类型的符号:
- Entity data type(实体数据类型):这是在表达最重要的数据类型。这是下面有更详细。实体数据类型可以有两种方式,在一个子树的父和/或属性有关。
- Enumeration data type(枚举数据类型):枚举值是简单的字符串,如红色,绿色和蓝色为RGB-枚举。在这种枚举类型声明可扩展的情况下它可以扩展在其他模式。
- Defined data type(定义数据类型):这进一步专业其他数据类型 - 例如,定义一个数据类型积极的,是整数类型的值> 0 。
- Select data type(选择数据类型):选择定义不同的选项之间进行选择或替代。最常使用的是不同的entity_types之间进行选择。更难得的是选择,其中包括定义的类型。在这种枚举类型声明可扩展的情况下,它可以扩展在其他模式。
- Simple data type(简单数据类型)
- String(字符串):这是最常用的简单类型。明示的字符串可以是任意长度的,并且可以包含任何字符(ISO 10646/Unicode中) 。然而,它是常见的做法。
- Binary(二进制):本数据类型仅很少使用。它涵盖了数位(而不是字节) 。对于一些实施方式中的大小被限制为32位。
- Logical(逻辑):类似于布尔数据类型的逻辑有TRUE和FALSE并且除了未知的可能值。
- Boolean(布尔):随着布尔值TRUE和FALSE 。
- Number(数字): Number数据类型既,整数和实的超类型。大多数的实现需要使用double类型来表示real_type ,即使实际值是一个整数。
- Integer(整型):快递整数原则上可以有任意长度,但大多数实现限制他们有符号的32位值。
- Real(实):理想的表达真正的价值是无限的精度和大小。但在实践中真正的价值是由一个double类型的浮点值来表示。
- Aggregation data type(²聚合数据类型):可能的种aggregation_types被设置,包列表和数组。而SET和BAG是无序的, LIST和ARRAY是有序的。一包可以包含一个特定的值超过一次,这是不允许的设置。数组是可能含有未设置成员的唯一聚集。这是不可能的SET ,LIST袋。总的成员可以是任何其它数据类型。
一些一般的东西都被提及的数据类型。
- 构造数据类型可以在EXPRESS Schema中定义。它们主要用于定义实体,并以指定的实体的属性和聚合部件的类型。
- 数据类型可以用在递归的方式来建立更多和更复杂的数据类型。例如它可以定义或者一些单位或其他数据类型的一个SELECT的数组列表。如果是有意义的定义这样的数据类型是一个不同的问题。
- 明确定义了一些规则是如何的数据类型可以进一步专业化。这是实体的重新声明的属性很重要。
- 通用数据类型可用于过程,函数和抽象的实体。
- 实体属性(Entity-Attribute)
体属性允许“属性”添加到实体和关系一个实体与另一个在一个特定的角色。该属性的名称指定的角色。大多数的数据类型可以直接作为一个属性的类型。这包括聚集为好。
有三种不同类型的属性,显式的,衍生的和逆属性。而所有这些都可以被重新宣布一个亚子类型。除了明确的属性可以被重新声明为导出的一个子类型。那种属性没有其他的变化是可能的。
- 显式的属性是那些在STEP - 文件可见的直接价值。
- 派生属性从表达式获取它们的值。在大多数情况下,表达式引用此实例的其他属性。表达式也可以使用明示的功能。
- 逆属性做“信息”不能增加一个实体,但只有名字和约束从另一端的明确属性的实体。在EXPRESS -G符号的特定属性的符号
父类型和子类型(Supertypes and subtypes)
一个实体可以被定义为一种类型或其他几个实体(多重继承是允许的! ) 。超类型可以有任意多个子类型。在步骤建立非常复杂的子超类型的图表非常普遍的做法。一些图涉及100多实体类型。
实体实例可以被构造为一个单一实体(如果不是抽象)或实体以这样的子父图形的复杂组合。对于大图的可能组合数很可能在天文范围内增长。要限制特殊的超类型的限制得到了介绍,如oneOf的和TOTALOVER可能的组合。另外一个实体可以被声明为抽象的执行,没有实例可眼前这个实体的构造,但只有当它包含非抽象的子类型。
- 算法约束(Algorithmic constraints)
实体和自定义数据类型可能会进一步限制与WHERE规则。在这种规则也是全球规则的一部分。 A其中的规则是一个表达式,其结果必须为TRUE ,否则一个Express架构的人口,是无效的。等得到的属性这些表达可以调用明示的功能,这可能会进一步明确调用程序。该函数和过程允许制定与局部变量,参数和常量复杂的语句 - 非常类似于一种编程语言。
该EXPRESS语言可以形容本地和全球规则。例如:
ENTITY area_unit
SUBTYPE OF (named_unit);
WHERE
WR1: (SELF\named_unit.dimensions.length_exponent = 2) AND
(SELF\named_unit.dimensions.mass_exponent = 0) AND
(SELF\named_unit.dimensions.time_exponent = 0) AND
(SELF\named_unit.dimensions.electric_current_exponent = 0) AND
(SELF\named_unit.dimensions.
thermodynamic_temperature_exponent = 0) AND
(SELF\named_unit.dimensions.amount_of_substance_exponent = 0) AND
(SELF\named_unit.dimensions.luminous_intensity_exponent = 0);
END_ENTITY; -- area_unit
这个例子描述了面积单位实体必须有长度的平方值。对于这个属性dimensions.length_exponent必须等于2和基本SI单位的所有其他指数必须为0。
另一个例子:
TYPE day_in_week_number = INTEGER;
WHERE
WR1: (1 <= SELF) AND (SELF <= 7);
END_TYPE; -- day_in_week_number
也就是说,它表示星期的值不能超过7 。
所以,你可以描述一些规则,以您的实体。在给定的例子,更多细节可在ISO 10303-41被发现.
EXPRESS -G是一种信息模型标准的图形符号。一个有用的伴侣的EXPRESS语言来显示实体和类型定义,关系和基数。 这种图形表示法支持EXPRESS语言的一个子集。对使用EXPRESS -G超过明示的优点是数据模型的结构可以更容易理解的方式呈现。的EXPRESS-G的一个缺点是复杂的约束不能被正式指定。
- EXPRESS-Schema定义
- EXPRESS –Schema 架构
EXPRESS-Schema 定义如下图所示:
定义完成后文件被保存为“.exp”。
- 类型(basic)定义(type declaration)
- 简单(内嵌)内型定义:
- 数据类型有:
- BINARY, BOOLEAN, INTEGER, LOGICAL, NUMBER, REAL, STRING
- EXPRESS-G图例如下:
- 定义示例如下:
TYPE distance = REAL;
END_TYPE;
- 集合类型(Collection types):
- 数据类型有:
- Array (fixed size, position relevant)
- Bag (variable size, position not relevant)
- Set (like bag but without duplicates)
- List (variable size, position relevant)
- 定义实例如下:
TYPE positive_integer = INTEGER;
WHERE NotNegative : SELF >= 0;
END_TYPE;
- 枚举类型(Enumeration type):
- 定义实例如下:
TYPE trafficLightColor = ENUMERATION OF (Red, Amber, Green);
END_TYPE;
- 选择类型(Select type):
- 定义示例如下:
TYPE vehicle = SELECT( car, boat, plane );
END_TYPE;
- 实体定义(entity declarations)
- 实体定义实例:
- 点
ENTITY point;
x : REAL;
y : REAL;
END_ENTITY;
- 线:
ENTITY line;
end1 : point;
end2 : point;
length : distance;
END_ENTITY;
- Polyline
ENTITY polyline;
lines : LIST[ 1 : ? ] OF line;
END_ENTITY;
- EXPRESS-G实体及其关系定义:
- Entities: DERIVE and OPTIONAL(来自和可选):
- DERIVE示例:
ENTITY line;
start : point;
end : point;
DERIVE
length : distance:=SQRT((end.xcoord - start.xcoord)**2
+ (end.ycoord - start.ycoord)**2);
END_ENTITY;
- OPTIONAL示例:
ENTITY person;
first_name : STRING;
last_name : STRING;
nickname : OPTIONAL STRING;
END_ENTITY;
- Entities: INVERSE
ENTITY employee;
name : person_name;
END_ENTITY;
ENTITY person_name;
last_name : STRING;
first_name : STRING;
INVERSE
link : employee FOR name;
END_ENTITY
一个PERSON_NAME不能存在,除非有employee,有它的值是自一个名为name属性的一个值。
- 关系和基数
- 准则定义(rule declarations)
- 全局准则:全局准则定义在Schema内:
- 全局准则示例1:
RULE max_number_of_students FOR (student);
WHERE
max_is_40 : SIZEOF(student) <= 40;
END_RULE;
- 全局准则示例2:
RULE rule_name FOR (entity_type_1,…, entity_type_N);
(* executable statements *)
WHERE
(* some expression that returns TRUE or FALSE *)
END_RULE;
- 实体内部准则:定义在实体内部:
- 实体内部准则示例1:
ENTITY student;
first_name : STRING;
last_name : STRING;
ssn : STRING;
UNIQUE
unique_ssn_rule : ssn;
END_ENTITY;
- 实体内部准则示例2:
ENTITY unit_vector;
a,b,c : REAL;
WHERE
unit_length_rule : a**2+b**2+c**2 = 1.0;
END_ENTITY;
- 函数定义(functions)
函数定义实例如下:
FUNCTION days_between( d1 : date, d2 : date ) : INTEGER;
(* returns the number of days between the two
input dates. If d1 is earlier than d2, a positive
number is returned *)
END_FUNCTION;
- 简单的例子
- 点、线示例
下图为点、线的EXPRESS Schema和对应的EXPRESS-G图形。
图 例子Schema及其对应的Express-G 图
通过该Schema方式定义的Part21文件如下图所示:
图 具体实例及其对应的Part 21文件
- 完整的person 示例
- EXPRESS-Schema
SCHEMA example;
TYPE date = ARRAY [1:3] OF INTEGER; END_TYPE;
TYPE hair_type = ENUMERATION OF (bald,dyed,natural,wig);
END_TYPE;
ENTITY person
SUPERTYPE OF(ONEOF(female,male));
first_name, last_name : STRING;
nickname : OPTIONAL STRING;
birthdate : date;
children : SET[0:?] OF person;
hair : hair_type;
DERIVE
age : INTEGER:=years(birthdate);
INVERSE
parents : SET[0:2] OF person FOR children;
END_ENTITY;
ENTITY female
SUBTYPE OF (person);
maiden_name : OPTIONAL STRING;
END_ENTITY;
ENTITY male
SUBTYPE OF (person);
END_ENTITY;
ENTITY married;
husband : male;
wife : female;
UNIQUE
no_polyandry : husband;
no_polygamy : wife;
END_ENTITY;
FUNCTION years(aDate:date) : INTEGER;
(* returns the number of years between aDate and today *)
END_FUNCTION;
END_SCHEMA;
- EXPRESS-G
STEP标准描述方法-EXPRESS语言相关推荐
- Express语言和STEP标准
Express是一种用于计算机辅助设计 (CAD) 的领域建模语言.它是一种声明式.基于规则的语言,用于描述和定义CAD系统中的实体.属性.关系.函数.约束和逻辑等方面.Express语言在CAD领域 ...
- STEP 标准基础概念-刘亚龙
STEP标准 STEP(Standard for the Exchange of Product Model Data-产品模型数据交互规范)[1]标准是国际标准化组织制定的描述整个产品生命周期内产品 ...
- html 标准通用标记语言下,HTML超文本标记语言常用的一些标签
在之前的学习中了解到了xml是可扩展型标记语言,所以html和xml有相似之处,html是可以在网络上传输的超文本标记语言,所以xml的所有要求对于html同样适用,单双标签,子标签,属性,之类的ht ...
- STEP标准执行方法-ISO-10303-21
STEP- File是的STEP应用最广泛的数据交换格式.由于它的ASCII码的结构很容易阅读与通常每行一个实例.STEP文件格式是Exchange结构在ISO 10303-21 EXPRESS编码定 ...
- 从IEEE754标准谈C语言浮点数据类型
先看下面几个问题,如果你能准确地回答,那么此篇文章将不适合你: 计算机中怎样表示浮点数的,与整型的表示方法有什么不同? 32位精度的float类型和64位精度的double类型能表示浮点数最大范围是多 ...
- c语言规范标准中英文,C语言中英文翻译资料.doc
C语言中英文翻译资料.doc The C Programming LanguageC is a high-level programming language developed by Dennis ...
- 5c标准第二语言,美国语言教学5C标准对中文作为第二语言教学课堂的启示
美国语言教学5C标准对中文作为第二语言教学课堂的启示 来源:用户上传 作者: [摘要]本文首先就第二语言学习5C教学标准的内容及目的进行了简要介绍,接着分析了我国对外汉语教学的现状,最后提出了对中文作 ...
- c语言c11标准 pdf,C语言新标准C11
这是2011年制定的一个新标准,顺便翻译一下第一章的Scope. 为什么要翻译第一章?因为我发现,过去的C语言题库中总喜欢拿C语言标准中未定义的行为和未指定的行为来说事,比如函数参数传值顺序问题-- ...
- 基于C99标准的C语言coding技巧
文章目录 Union 宏定义 数组和柔性数组 其它 Union 共用体中有int型和char[10]这两个成员,代码如下: #include <stdio.h> union st { in ...
最新文章
- 使用Blender Houdini轻松学习FX特效
- GridView 中设置某列,截取字符串加... 和 鼠标放上去字符全部显示
- 《走遍中国》珍藏版(十四)
- ndnsim r语言 ubuntu_Python语言---数据库
- linux学习第一课:liunx概论
- 【LeetCode】【字符串】题号:*551. 学生出勤记录 I
- 刷机出现未将对象引用设置到对象的实例是什么意思_Java 虚拟机 2:Java 内存区域及对象简单理解...
- 计算机专硕292,计算机2年制专硕越来越少,生活终于对我下手了吗?
- 做视频后期剪辑用什么软件好?4款常用软件推荐
- matlab rawdat,工控网络安全态势感知算法实现.pdf
- 发现一款好用的在线项目管理工具(有免费版)
- 2022 高教杯数学建模C题古代玻璃制品的成分分析与鉴别回顾及总结
- 攻防世界-web NewsCenter3
- 字符串转化int类型(整数)
- 智能硬件产品开发全流程解析
- 如何为3CX系统配置WatchGuard XTM防火墙
- python 匹配字符串开头和结尾
- 在Canvas中绘制圆角矩形
- ibatis使用方法
- 什么是商业模式(Business Model)?
热门文章
- PySpark | RDD
- python练习题——文件的打开、读取、复写
- 搞定iOS的几种页面跳转方式
- 微生物恒化器中的进化压力----进化模型推导与分析
- 汽车电子EMC试验标准ISO11452
- 网站cookie和曲奇饼干_谷歌扔饼干和营销人员感到恶心
- Android报错installation failed with message invalid file E://.....
- 手机WIFI拦截器简单实现
- 手机wifi显示未连接服务器,客户端显示wifi未连接到服务器
- 自己用jQuery写一个瀑布流