• 2.34 MB
  • 2022-04-22 11:34:10 发布

GBT 17645.20-2002 工业自动化系统与集成零件库 第20部分:逻辑资源:表达式的逻辑模型.pdf

  • 83页
  • 当前文档由用户上传发布,收益归属用户
  1. 1、本文档共5页,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
  4. 文档侵权举报电话:19940600175。
'ICS25.040.40iv18中华人民共和国国家标准GB/T17645.20-2002/ISO13584-20:1998工业自动化系统与集成零件库第20部分:逻辑资源:表达式的逻辑模型Industrialautomationsystemsandintegration-PartsLibrary-Part20:Logicalresource:Logicalmodelofexpressions(LSO13584-20:1998}IDT)2002一05一08发布2002一10一01实施中华人民共和国发布国家质量监督检验检疫总局 GB/T17645.20-2002/ISO13584-20:1998目次前言····································。···························。··············。·······················。。·········⋯⋯vISO前言····。··············,·······。。··············,·····················,······················,···················⋯⋯VI引言················。·································································································⋯⋯IX1范围·····················。·。·························。·······································。·····················⋯⋯12规范性引用文件·····················································································.....·····⋯⋯13术语和定义····························································································。·······⋯⋯13.1从ISO10303-11中引用的术语和定义·。···········,··········。······························⋯⋯。·.⋯⋯13.2从GB/T16656.44中引用的术语和定义·····。·······················。·································⋯⋯23.3其他的术语和定义·······································。·········································⋯⋯。.⋯⋯24缩略语········································。·······················。····························,··············⋯⋯45基本概念和假设···················。························。···················。················。··············⋯⋯45.1静态和动态数据····················································································。········⋯⋯45.2表达式语法··········。。·····················································。·································⋯⋯45.3表达式语义·························。··············,··························································⋯⋯45.3.1表达式语义·.....................................................................................................45.3.2交换阶段和求值阶段····················,······。································.·..·········...·..·..·.⋯⋯45.4表达式建模中的抽象等级········,······。···············,·······。·······························..·..···.·⋯⋯55.4.1ISO13584通用表达式模式的专门化···························。···································⋯⋯55.4.2ISO13584表达式模式的专门化·············。························。················。·············⋯⋯55.5变量的建立··。································································································⋯⋯55.5.1符合语法的表达································。················。·································..·.···⋯⋯55.5.2变量值域·······································。·················。························。················⋯⋯65.5.3变量语义··········································································。·············、··········⋯⋯65.6SQL语言可映射性··························································...·..··············....·..·....⋯⋯66ISO13584通用表达式模式···············,·······················································.....·····⋯⋯66.1概述············································································,·······························⋯⋯66.2ISO工3584通用表达式模式实体定义··································。·······························⋯⋯66.2.I通用表达式·······。。··························。·········。··················,···········。···················⋯⋯66.2.2简单通用表达式··························································....·.·······..·....·..·.....·⋯⋯76.2.3通用文字·························。··········································。。····························⋯⋯76.2.4通用变量··························,········。···········,········。································.···········一76.2.5变量语义·························。········,·······························································⋯⋯86.2.6环境·..............................................................................................................86.2.7一元通用表达式····························································································一96.2.8二元通用表达式···············。································································........·.⋯⋯96.2.9多元通用表达式·············。···················。···················。·························.⋯⋯。·.⋯⋯96.3ISO13584通用表达式模式函数的定义·······························································⋯⋯9 GB/T17645.20-2002/ISO13584-20:1998Q6.3.1判断非循环函数····················································································⋯⋯”·’二︺111上6.3.2已使用的变量函数·······,··············································································⋯⋯1弓7ISO13584表达式模式················································⋯⋯‘二“‘······⋯⋯‘二‘二””’‘’‘·“’“’197.1概述············································································································⋯⋯1伪1。7.2ISO13584表达式模式的所有实体定义················································⋯⋯’‘·““‘·“““1六j表达式,.。凸:.:.:1变量11。a7.2.1.2定义的函数·········⋯⋯,月q17.2.1.3SQI_可映射的定义函数1月47.3ISO13584表达式模式:数值表达式的实体定义,.月7.3.1数值表达式································································································⋯⋯1呀1月吸7.3.2简单数值表达式··,·······················································································⋯⋯,口esJ7.3.3数值型文字····。······。·······。············································································⋯⋯,口1d7.3.4整型数文字································································································⋯⋯,.l﹄7.3.5实型数文字·············································································。···············⋯⋯胜“157.3.6数值变量··································································································⋯⋯,.‘7.3.7整型数值变量·····························································································⋯⋯1u,﹃卜7.3.8实型数值变量·····························································································⋯⋯上1‘7.3.9一元数值表达式·..............................................................................................划1,7.3.10二元数值表达式···········································。···········································⋯⋯.,门es了7.3n多元数值表达式·······················································································。··⋯l向厂7.3.12长度函数·...................................................................................................l.。7.3.13值函数··································································································。。·⋯1.1。7.3.14整数值函数··············。··············································································⋯⋯‘O1.S7.3.15数值定义的函数·······················································································⋯⋯11C︺7.3.16加法表达式··························································································。··⋯⋯︺1Q7.3.17减法表达式·····························································································⋯⋯︺,.07.3.18乘法表达式·····························································································⋯⋯几“l。7.3.19整除表达式····························································································⋯⋯Jq门7.3.2。求模数表达式·...............................................................................................曰Q07.3.21除法表达式·····························································································⋯⋯曰八07.3.22幂表达式································································································⋯⋯n17.3.23一元函数调用··························································································⋯⋯乙917.3.24二元函数调用·························································································⋯⋯曰n,7.3.25多元函数调用··························································································⋯⋯习es今o自乙7.3.26求绝对值函数··························································································⋯⋯nq7.3.27负函数····························································································。······⋯⋯乙Qn乙7.3.28正弦函数································································································⋯⋯一,n7.3.29余弦函数································································································⋯⋯曰勺。d7.3.30正切函数································································································⋯⋯n。7.3.31反正弦函数·,···························································································⋯⋯︸八q八j7.3.32反余弦函数·····························································································⋯⋯户几,八7.3.33e的幂函数 cB/T17645.20-2002/iso13584-20:19987.3.34自然对数函数·························································································⋯⋯247.3.35以2为底的对数函数···············································,······························⋯⋯“‘247.3.36常用对数函数······。···················································································⋯⋯247.3.37平方根函数·...........................................················································⋯⋯257.3.38反正切函数·················································。···········································⋯⋯257.3.39求最大值函数···········································。······,····························。·········⋯⋯257.3.4。求最小值函数·····························。·········。·················································⋯⋯257.3.41整数定义的函数·························································································,⋯267.3.42实数定义的函数········。···············································。·。。·······。···················⋯⋯267.4布尔表达式················。···························································。······················⋯⋯267.4.1简单布尔表达式··························································································⋯⋯277.4.2布尔文字·········································。············。。·····················。·····················⋯⋯277.4.3布尔变量·····································。····························································⋯⋯277.4.4一元布尔表达式··············、·······················。··········································。········⋯⋯277.4.5非表达式························································································。········⋯⋯287.4.6奇函数····························,.······························································。·········一287.4.7二元布尔表达式··················································。······································⋯⋯287.4.8多元布尔表达式········································。·················································⋯⋯297.4.9逻辑异或表达式········。····································。··················。·························⋯⋯297.4.10等于表达式·················,··············································‘···························⋯⋯297.4.11逻辑与表达式··。···································。····················································一307.4.12逻辑或表达式·..................................·········。·········。··································⋯⋯307.4.13比较表达式······················································。··········,···························⋯⋯307.4.14比较等于·················································.············································⋯⋯317.4.15比较大于·······························。···············································。·····,··········⋯⋯317.4.16比较大于等于···········································。。······,······································⋯⋯317.4.17比较小于··························································································,·····⋯⋯327.4.18比较小于等于······························································,····························。·⋯327.4.19比较不等于············································。·············································。。⋯⋯327.4.20匹配表达式····························,······························。································。⋯⋯337.4.21区间表达式····。································,·················。··········。·········。···············⋯⋯337.4.22布尔定义的函数···············································。··········。····························⋯⋯347.5字符串表达式·.......................·,········,·········,,·····,······1,·,··,········,,,········,】,⋯⋯357.5.1简单字符串表达式·············。··········。·········。。······································⋯⋯‘····⋯⋯‘357.5.2字符串文字·.....................................................................................................357.5.3字符串变量·....................................................................................................357.5.4索引表达式······························································································⋯⋯367.5.5子字符串表达式·························································································⋯⋯367.5.6串联表达式·····················································。··········································⋯⋯377.5.7格式化函数···············································································、················⋯⋯387.5.8字符串定义的函数·······································。··········。························⋯⋯‘·····⋯⋯387.6确定表达式特性的函数·············。··········。······,····················································⋯⋯397.6.1判断整型表达式函数······················。·····················。·······································⋯⋯39 GB/T17645.20-2002/ISO13584-20:19987.6.2判断SQL可映射的函数·······························································⋯⋯’二‘二‘二““·427.6.3被使用的函数···········································································。···············⋯⋯45附录A(规范性附录)实体名与缩写·······································································⋯⋯49附录B(规范性附录)信息对象注册···。····································································⋯⋯51B.1文件标识···········。·····································································。···。············⋯⋯51B.2模式标识·。。································································································⋯⋯51B.2.1ISO13584通用表达式模式······························。············································⋯⋯51B.2.2ISO13584表达式模式···············································································⋯⋯51附录C(资料性附录)EXPRESS-G图...........................................................................52附录D(资料性附录)ISO13584表达式模式的使用··································。················⋯⋯62D.1概述························································································。················⋯⋯62D.2解释函数和变量语义································································一“‘’‘二‘·‘··⋯‘二‘二62D.3GB/T17645的本部分中解释函数的表达····························································⋯⋯62D.4使用变量语义实体定义新变量的语义·······························································⋯⋯62D.4.1变量语义实体特殊子类的使用·····································································⋯⋯63D.4.2变量语义实体和其他实体的多重继承···········································。················⋯⋯63D.4.3定义一个不在模型中表达的概念··································································⋯⋯64附录E(资料性附录)模式的专门化········································································⋯⋯66E.1概述·········································································································⋯⋯66E.2ISO13584通用表达式模式的专门化··································································⋯⋯66E.3ISO13584表达式模式的专门化········································································⋯⋯66E.4本部分专门化的方法论································································⋯⋯’‘二‘””‘⋯⋯67E.5ISO13584通用表达式模式专门化的例子····························································⋯⋯67E.6ISO13584表达式模式专门化的例子··································································⋯⋯69附录F(资料性附录)表达式的静态分析··································································⋯⋯70F.1概述················。························································································⋯⋯70F.2判断非循环函数··························································································⋯⋯70F.3被使用的变量和被使用的函数········································。······························⋯⋯70F.4判断SQ工可映射的函数·......................................................................................70F.5类型控制和类型合成··································································⋯⋯‘’·”·’二’二’““·70索引·················································································································⋯⋯71参考文献············································································································⋯⋯74图D.1与变量相关的语义和语法···········································································⋯⋯62图D.2由变量语义实体的子类化说明语义·······························································⋯⋯63图D.3由子类化的变量语义实体和其他实体定义的语义说明·······································⋯⋯64图D.4在模型中未表达定义概念的例子:坐标····························································⋯⋯65表A.1实体名与缩写·。···············。········································································⋯⋯49 GB/T17645.20-2002/ISO13584-20:1998月U胃GB/T17645《工业自动化系统与集成零件库》分为以下几部分:第1部分:综述与基本原理;第20部分:逻辑资源:表达式的逻辑模型;-一第24部分:逻辑资源:供应商库的逻辑模型;-一第26部分:逻辑资源:信息供应商标识;第31部分:实现资源:几何编程接口;—第42部分:描述方法学:构造零件族的方法学;第101部分:视图交换协议:由参数化程序规定的几何视图交换协议;第102部分:视图交换协议:由ISO10303一致性规范确定的视图交换协议。本部分为GB/T17645的第20部分,对应于ISO13584-20:1998《工业自动化系统与集成零件库第20部分:逻辑资源:表达式的逻辑模型)(1998年英文版)。本部分等同翻译ISO13584-20:1998,主要编辑性修改如下:1,对于带下划线的用EXPRESS语言描述的各黑体英文实体名,为了既要维护其英文原意又要便于了解其名称代表的意思,在本部分中,当其作为标题出现时,标出了其中文译名;但在正文中,以英文为主,仅在其第一次出现或必要时,将中文译名括起来放在英文原名后。2,国际标准ISO13584中的各部分已有一些被等同转化为国家标准,对应的国家标准分别是GB/T17645中的各部分,二者在技术和使用上对等。但是考虑到与国际标准ISO13584相配套的EX-PRESS描述、以及应用软件中各模式、实体、特性、属性、函数等表达的需要,为了使配套应用软件在实际应用时,不发生因标准转化所带来的问题,对出现在本标准的本部分中的所有的EXPRESS描述和由STEP开发工具自动生成的文件及EXPRESS-G图中的国际标准编号仍保持不变。3.为便于对本部分的理解,增加了一个参考文献目录。4,在国际标准中还发现一些编辑性错误,我们进行了修改,对照如下;一一6.2.1:ISO原文usedvariables引用5.3.2,实际应引用6.3.2;一6.2.1:ISO原文引用3.1.6,实际上这一节原文中没有,应该见5.4.1;-6.2.4:ISO原文这些子类定义在第6章,实际上这些子类定义在第7章。—在国际标准正文中未提及附录A和附录B的内容,在6.1增加了相应内容。国际标准ISO13584按功能分为七大类:概念描述、逻辑资源、实现资源、描述方法学、一致性测试、视图交换协议、标准的相关范围。ISO13584-20:1998《工业自动化系统与集成零件库第20部分:逻辑资源:表达式的逻辑模型》属于逻辑资源类,该部分为零件库开发商提供了描述零件族的表达式逻辑模型ISO13584现已正式发布了八个部分(见ISO前言),其中的第1部分、第26部分、第31部分,第42部分已转化为我国国家标准,分别为:GB/T17645.1-2001工业白动化系统与集成零件库第1部分:综述与基本原理(GdtISO13584-1:1999);GB/T17645.26-200。工业自动化系统与集成零件库第26部分:逻辑资源:信息供应商标识(eqvISO13584-26:1999);GB/I"17645.31-1999工业自动化系统与集成零件库第31部分:实现资源:几何编程接口 GB/T17645.20-2002/ISO13584-200998(idtISO13584-31:1997);GB/T17645.42-2001工业自动化系统与集成零件库第42部分:描述方法学:构造零件族的方法学(idtISO13584-42:1998),ISO13584的其他部分也将陆续被转化为我国国家标准。本部分的附录A和附录B是规范性附录,附录C、附录D、附录E和附录F是资料性附录。本部分由中国标准研究中心提出。本部分由全国工业自动化系统与集成标准化技术委员会(CSBTS/TC159)归口。本部分起草单位:中国标准化研究中心。本部分主要起草人:洪岩、李文武。 GB/T17645.20-2002/ISO13584-20:1998ISO前言国际标准化组织(ISO)是世界各国标准化机构(ISO成员)的联合体。国际标准的制定工作是通过ISO的技术委员会正式完成的。对已经建立技术委员会的学科感兴趣的每一个成员机构都有权在该委员会中派驻代表。与ISO相联系的国际组织,官方的或非官方的,也参与其工作。ISO与国际电工技术委员会(IEC)在电工电子标准化的所有领域有着紧密的合作。技术委员会起草的国际标准草案经每一个ISO成员投票,至少75%的ISO投票国家团体赞成.才能发布成为国际标准。ISO13584-2。是由ISO/TC184技术委员会(工业自动化系统与集成)的SC4分技术委员会(工业数据及全球制造编程语言)制定的。ISO13584的总标题为“工业自动化系统与集成零件库”,它包括以下部分:—第1部分:综述与基本原理;—第20部分:逻辑资源:表达式的逻辑模型;—第24部分:逻辑资源:供应商库的逻辑模型;一第26部分:逻辑资源:信息供应商标识;—第31部分:实现资源:几何编程接口;—第42部分:描述方法学:构造零件族的方法学;—第101部分:视图交换协议:通过参数化程序进行的几何视图交换协议;—第102部分:视图交换协议:由ISO10303一致性规范确定的视图交换协议在ISO13584-1中描述了本国际标准的结构。本国际标准各部分的编号反映了它的结构—第10-19部分规定了概念描述;—第2029部分规定了逻辑资源;—第3039部分规定了实现资源;-一第4049部分规定了描述方法学;—第50.59部分规定了一致性测试;—第100^-199部分规定了视图交换协议;—第500-599部分规定了标准的相关范围。今后发布的ISO13584各部分将遵循相同的原则附录A和附录B是本部分的规范性附录,附录C,附录D、附录E和附录F为本部分的资料性附录 “田影叨双#sv9乙t上/u9干思鱼国影留取fOI黔彭溉SSHxd一Xd而Irl`1}}草晋X91翼而粼"TlSSHNdx2I叨竿买笙采0又}腾4}5s1"1茸}Us}9LT_L/99尹4#黔彭溉SS32IdX3瑜又Ir森瞬溉SS32IdX3留甚叨-"硒而翼竿罕二尔铸}K姆幸C;OSb9L工上/日0“贬笙彭皱勘哥壬瞥书碍幸叨职t#到国幸。买斗工Ly辛书蝗母叨我醉拯申TOOZ-T"S}9GT,L沮0。中田影釜畔叨裂黔胜淤俱诱革田腆共哑科取一’素梁军平W#"wm?(6Y"a-NAN"*Wl零)k`丫6169{i{5v#ll0VW{KVR-429R*Gk}一甲st9LiS,/99“晒育叨澎材出查祥吐祖笨蔷平`瞬革叨}W}l献确叨材拿波#导萝2}尘"At‘W瞬科申4黔曦粼封含哄}%藕朋淤箭晋叨目茸`裂黔琴国叨瞬摹乌71擎w珊粼封羹R徽娜L瞬算书壬釜小-晋sm工1/90旱1C8661"OZ-b89#losi/ZOOZ-OZ"9G9L11/as GB/T17645.20-2002/ISO13584-20:1998工业自动化系统与集成零件库第20部分:逻辑资源:表达式的逻辑模型范围GB/T17645的本部分规定了:—通用表达式的EXPRESS模式;—表达式的EXPRESS模式建立了EXPRESS语言所允许的表达式的子集,对应于ISO1030311:1994中定义的整型、实型、布尔型和字符串型。该模式使用通用表达式模式中定义的资源。GB/T17645的本部分适用于:—包括常量和变量的表达式的交换;—检查数值表达式是否应该计算得出整数值的函数;—确保表达式在语义上正确的约束条件;一表达式中使用的变量或函数的计算;—检查表达式是否可以映射到SQL查询语言的函数。GB/T17645的本部分不适用于:—在某些相关环境中对变量赋值;—在给定的相关环境中,计算表达式值的触发机制。2规范性引用文件下列文件中的条款通过GB/T17645的本部分的引用而成为本部分的条款。凡是注日期的引用文件,其随后所有的修改单(不包括勘误的内容)或修订版均不适用于本部分,然而,鼓励根据本部分达成协议的各方研究是否可使用这些文件的最新版本。凡是不注日期的引用文件,其最新版本适用于本部分。GB/T16656.44-1999工业自动化系统与集成产品数据表达和交换第44部分:集成通用资源:产品结构配置(idtISO10303-44:1994)ISO10303-11:1994工业自动化系统与集成产品数据表达和交换第11部分:描述方法EX-PRESS语言参考手册ISO/IEC9075:1992信息技术数据库语言一SQL术语和定义ISO10303-11:1994和GB/T16656.44-1999确立的下列术语和定义适用于GB/T17645的本部分。3.1从ISO10303-11中引用的术语和定义3.1.1数据类型datatype数据的取值范围。 GB/T17645.20-2002/ISO13584-20:19983.1.2实体entity由公共特性定义的信息类。3.1.3实体数据类型entitydatatype实体的表达。实体数据类型建立了由公共属性和约束定义的值域。3-1.4实体(数据类型)实例entity(datatype)instance在实体定义的类中,表达一个信息单元的命名数据单兀。它是实体数据类确定的作用域的组成部分。3.2从GB/T16656.44中引用的术语和定义3.2.1前辈节点ancestornode从一给定节点出发,通过逆方向对链的连续遍历所能够达到的任何节点对于一个给定节点,它的前辈节点包括全部父节点、以及这些父节点的全部父节点,等等3.2.2子节点childnode一个链指向的节点。3.2.3后辈节点descendentnode从一给定的节点出发,通过链的连续遍历所能够达到的任何节点。对于一个给定节点,它的后辈节点包括全部子节点、这些子节点的全部子节点,等等3.2.4有向非循环图directedacyclicgraph节点和有向链的集合,该集合中任意节点都不是它自己的前辈节点或后辈节点。12.5链link在一个有向非循环图中,从一个节点到另一个节点的单向关系3.2.6节点node有向非循环图中的一个元素,它通过链与另一个这样的元素相连接。3.2.7父节点parentnode一个链的开始节点。3.3其他的术语和定义3.3.1操作符的元arityofanoperator与操作符关联的操作数的最大数量。3.3.2二元操作符binaryoperator元等于二的操作符。 Gs/T17645.20-2002/ISO13584-20:19983.3.3环境environment语义和语法的统称注:在本部分的相关环境中,environment环境)实体与generic-variable(通用变量)的语法结合,相应的含义(语义)由variable_semantics(变量语义)实体表达13.4求值evaluation计算由表达式表达的值3.3.5表达式expression变量或常量的集合,或者是用操作符组合的变量和常量的集合注1:表达式表达了一个函数,函数的自变量是在表达式中出现的变量注2:表达式的基础结构是一个有向非循环图,其中节点是操作符、常量或变量,链表达从每个操作符到其白变量的单向关系13.6表达式数据类型expressiondatatype表达式计算结果的值域。注:在木部分中,类型控制和类型合成只在ISO13584expressionsschema(ISO13584表达式模式)中实现。EXPRESS模式的结构和规则确保类型控制。EXPRESSTYPEOF(判断是否是数值表达式)函数和。_int(判断是否是整型值)函数完成类型合成。EXPRESSTYPEOF函数确定一个expression〔表达式)是nnmenc_expres-sion数值表达式),Boolean_expression(布尔表达式)或string_expression(字符串表达式),is_mt函数判定numericexpression的值是否为整型值3.3.7解释interpretation返回与每一个变量有关语义的函数。注这个函数使用将变量与其语义或其可能的值关联的环境3.3.8多元操作符multiplearityoperator元大于二的操作符。I19操作符operator操作符是一个函数,它连接一个或几个称作操作数的值,其生成的值称作结果。注:操作符的定义包括其操作数和计算结果的数据类型定义3.3.10语义semantics给定概念的含义。例变量的语义是该变量携带的含义。注:在本部分中,用variable_semantic(变量语义)实体来表达语义。这个实体是一个抽象超类,可以携带具休的含义和值13.11按语法规则表达syntacticrepresentation表达一给定概念的字符序列。注1:在通常的编程语言中,用于表达不同概念的字符序列应该遵守该语言的语法规则。注2:在本部分中,按语法规则表达的是实体(数据类刑)实例名。 GB/T17645.20-2002/ISO13584-20:199812类型控制typecontrol判断给定表达式是否输人正确类型的操作。注1:如果表达式的每个操作符的每个操作数的数据类型与所要求的数据类型相一致,该表达式输人正确注2:在本部分中,EXPRESS模式的约束确保类型控制正确。13类型合成typesynthesis确定表达式的数据类型。注:在ISO13584一expressions_schema模式中,每个常量、变量或操作符计算结果的数据类型由表示它们的实体实现,因此,根据表达该expression的节点的EXPRESSTYPEOF函数的计算结果可以推导出expression的数据类型14一元操作符unaryoperator元等于一的操作符。15变fvariable表达一种指定数据类型的值。缩略语下列缩略语适用于GB/T17645的本部分。SQL:StructureQueryLanguageISO/IEC9075:1992定义的结构化查询语言。5基本概念和假设5.1静态和动态数据交换零件库信息时,不仅需要交换可以表达为模型数据的静态特性,而且还需要交换动态行为,这种动态行为表达一个特性值是怎样从其他特性值推导出来的。表达式是一种使动态行为可以被模型化的结构。GB/T17645的本部分为计算机可解释的表达式的无二义表达和交换规定了一种格式。5.2表达式语法表达式语法由表达该表达式的常量、变量和操作符的符号集组成。在文本语言中,这些符号遵守由文法定义的规则。本部分中,用实体数据类型表达常量、变量和操作符。这些实体遵守的规则建立在定义这些实体数据类型的EXPRESS模式中。5.3表达式语义5.3.1表达式语义表达式由操作符和操作数组成。下述内容定义了表达式的语义:—由每个操作符实现的函数范围;—与每个操作数对应值相关联的解释函数;一当应用于操作数时,计算每个操作符结果的求值函数。在本部分中,用variable~semantics(变量语义)实体的子类化建立解释函数。本部分没有论述求值函数。5.3.2交换阶段和求值阶段表达式的处理可以根据不同类型的阶段来区分。—在交换阶段,用表达式的结构表达表达式,建立并交换相应的有向非循环图,并且不需要给变 GB/"r17645.20-2002/ISO13584-20:1998量限定任何值,但是要知道其语义。可以在这一阶段进行静态分析(图的非循环性、类型检查、SQL语言的可映射性)。—在求值阶段,表达式可以被赋值。在这个阶段,表达式中所有的变量都应限定一个值。在这个阶段可以作表达式的动态求值、测试和调试。本部分只阐述了交换阶段的静态分析。5.4表达式建模中的抽象等级ISO13584_generic_expressions_schema(ISO13584通用表达式模式)中使用的操作符允许对不同数据类型和不同目的的抽象通用表达式进行描述。5.4.1ISO13584通用表达式模式的专门化ISO13584_generic_expressions_schema(ISO13584通用表达式模式)的专门化。ISO13584_expressions_schema(ISO13584表达式模式)是ISO13584_generic_expressions_schema的一个专门化。ISO13584_expressions_schema中使用的操作符是属于ISO10303-11:1994中定义的操作符的一个子集。它们的范围和求值函数应该符合ISO10303-11:1994中给出的描述。操作数可以是由文字值表达的常量、变量,也可以是其他的表达式。在某些相关环境中对表达式求值时,变量被强制规定类型,而且假设当表达式在某些环境中被赋值时,由一个解释函数对每一个变量提供一个与其数据类型相匹配的值。当这种条件不成立时,表达式赋值将导致错误。附录C给出了ISO13584-generic-expressions-schema使用EXPRESS语言的EXPRESS-G图表示法。附录E阐述了这种专门化过程的细节,并对ISO13584_generic-expressions_schema的其他可能的专门化方法进行了概述。表达式不同分析的总体看法参见附录Fo5.4.2ISO13584表达式模式的专门化ISO13584expressionsschema(ISO13584表达式模式)可以不使用EXPRESS语言参考手册定义的数值操作符、字符串值操作符和布尔值操作符,而根据自己的需要定义。ISO13584expressionsschema的专门化包括:a)通过增加新实体的定义而扩大该模式,新实体具有函数语义并可返回整数值、实数值、布尔值或字符串值。b)定义variablesemantics(变量语义)的新子类。具有函数语义的实体应该被定义为与definedfunction实体相一致的子类。事实上,返回整数值、实数值、布尔值或字符串值的函数应该分别被定义为integer-defined-function,real-defined_func-tion,boolean_defined_function和string_defined_function的子类。这个专门化与根据ISO13584_expressions_schema规则进行的强制数据类型检查的结果相兼容。附录C给出了ISO13584_expressions_schema使用EXPRESS语言的EXPRESS-G图表示法。附录E讨论这种专门化过程的细节,并概述了ISO13584_expressions_schema的专门化方法。5.5变f的建立变量有三个含义:—它是可以用来构造表达式的符号;—它和一个定义其值域的数据类型相关联;—它和一个定义其含义并且在求值阶段定义其值的语义相关联。5.5.1符合语法的表达在本部分中,变量是generic一variable(通用变量)实体的实例。当在表达式中应用时,这种数据类型的实例与组成相应变量符号的标识符相关联。 GB/T17645.20-2002/ISO13584-20:19985.5.2变a值域通过generic一variable实体的子类化建立变量的值域的方法,称为强制类型。它保证了任何表达式的数据类型可以在交换阶段确定。5.5.3变f语义在ISO13584_generic_expression_schema中,变量与variable_semantics相关联。不论在何处使用一个特定的语义都要把实体子类化。variablesemantics子类的描述应包括使用变量相关环境的描述。该描述应该与该变量值有关的解释函数同时出现例:EXPRESS注释的SELF一是variable_semantics的例子。该变量只能用在其符合语法表达的、某些类的实例的相关环境中。在该相关环境中,解释函数将使这一实例的‘`a"属性的值与该变量相关。附录D讨论了不同的、可以用来定义满足某些特殊需求的variablesemantics子类的方法。它通过variablesemantics实体给出了解释函数的详细定义。5.6SQL语言可映射性在编程语言中,通常用表达式访问数据库SQI_语言只允许少量的操作符,并把表达式的应用限定于给定表达式的类别中。为了更清楚地区别这些表达式是SQ工一语言可映射的还是不可映射为SQL语言的其他表达式,一个特殊的导出布尔属性描述了表达式是否可映射到SQL语言。6ISO13584通用表达式模式本章定义了ISO13584_generic-expression_schema(ISO13584通用表达式模式)的需求。下列EXPRESS声明描述了ISO13584_generic_expression_schema信息块。EXPRESS描述:关)SCHEMAISO13584_generic-expressions_schema;(关6.1概述ISO13584_generic-expression-schema是为off有可能的表达式集合提供公共框架的抽象资源。例:在参数化形状模型中,实数值可以用操作数是几何描述项的表达式来表示,如:distance(point1,point_2)几何项可以由n何操作符规定,如:centre_of(circle_1).ISO13584-generic-expressions-schema的基础结构是一个表达其本身的非循环图,其中节点是操作符、文字值或变量,链表达了操作符和其自变量之间的关系。ISO13584_generic_expressions_schema具有以下功能:—通用常量与被操作数据类型的值对应;根据相关环境解释其所代表值的通用变量;适合于一元操作符的一元表达式;—适合于二元操作符的二元表达式;—适合于多元操作符的多元表达式。通过把常量、变量和操作符转化为需要的数据类型,可以获得所有特殊种类的表达式。本部分涉及的实体缩写遵照本部分附录A的规定。ISO13584-generic_expressions_schema的对象标识符见附录Bo6.2ISO13584通用表达式模式实体定义6.2.1通用表达式generic_expression(通用表达式)实体是在5.4.1中定义的generic_expression的信息模型。它是所有可能的表达式的抽象超类。为了能够判断表达式的非循环性,按其操作数元数对表达式分类。当6 GB/T17645.20一2002/15013584一20:1998generic_expression的子类不是simple_generic_expression、unary_generic_expression、binary_generic_expression或multiple_arity_generic_expression的子类时,该子类应该不包含任何变量。EXPRESS描述:苦)ENTITYgeneric_expressionABSTRACTSUPERTYPEOF(ONEOF(simple_generic_expression,unary_generlc_exPresslon,binary_generic_expression,multiple_arlty_generic_expression));WHEREWRI:15_acyclic(SEIF);ENDENTITY;(关形式限制:WRI:描述表达式的图应该是非循环的。非形式限制:Ipl:generic_expression可以不包含任何generic_variable。当包含generic_variable时,该gener-ic_expression是simple_generic_expression、unary_generic_expression、binary_generic_expres-sion或multiple_arity_generi。_expression的子类。注:非形式限制确保用used_variables函数(见本部分6.3.2)计算出的变量集合包括generlc_expresslon中的所有变量6.2.2简单通用表达式simple一generic~exPressi0n(简单通用表达式)是表达通用变量或通用文字的通用表达式。EXPRESS描述:釜)ENTITYsimple_generic_expressionABSTRAcTsuPERTYPEOF(ONEOF(generic_literal,generic_variable))SUBTYPEOF(generic_expression);ENDENTITY;(关6.2.3通用文字generic_literal(通用文字)是可以用于通用表达式的抽象常量。EXPRESS描述:去)ENTITYgeneric_IiteralABSTRACTSUPERTYPEsUBTYPEOF(simple_generic_expression);ENDENTITY;(关6.2.4通用变tgeneric_variable(通用变量)是可以用于通用表达式中的抽象变量。generic_variable可以被子类化为与其允许值对应的指定数据类型。generic_variable可以由与该变量值关联的解释函数所表达的环境引用。7 GB/T17645.20-2002/ISO13584-20:1998注:real-numeric-variable,integernumericvariable,booleanvariable和、tring-variable是generic_variable的子类的例子。这些子类定义见第7章EXPRESS描述:关)ENTITYgeneric-variableABSTRACTSUPERTYPESUBTYPEOF(simple-generic-expression);INVERSEinterpretation:environmentFORsyntactic_representation;ENDENTITY;(关属性定义:interpretation(解释):environment(环境)能够把变量与值关联起来。62.5变且语义variable_semantics(变量语义)实体用来表达generic_variable的含义。不论variable_semantics用于何处,它都是被子类化的generic_variable的抽象超类。variable-semantics规定在使用变量的相关环境中,变量与这个变量值关联的解释函数一起使用。例:当建立特性为“a"和‘`b”的部件类时使用了整数值。声明该类的每个实例中特性“a"的值应该大于特性,"b”的值,可通过下列条件建立模型:—建立realvariable的两个实例;—建立self_property_semantics的两个实例,self_property_semantics是分别引用特性“a”和特性“b"的variablesemantics的子类;—建立把每个变量和相应的variable_semantics联系起来的environment的两个实例;—建立两个real_variable间的boolean_expression(布尔表达式),指定其中一个real_variable大于另一个:ealvariable,EXPRESS描述:关)ENTITYvariablesemanticsABSTRACTSUPERTYPE;ENDENTITY;(关6.2.6环境environment(环境)实体将语法和变量语义关联在一起。它描述了把generic_variable和值联系起来的解释函数。EXPRESS描述:关)ENTITYenvironmentsyntactic-representation;generic-variable;semantics:variablesemantics;ENTITY;END属性定义 GB/T17645.20-2002/ISO13584-20:1998syntactic_representation(按语法规则表达):代表变量值的generic-variable,semantics(语义):变量的含义,它包括访问变量值的机制。6.2.7一元通用表达式unary_generic_expression(一元通用表达式)是所有一元操作符的抽象超类。EXPRESS描述:关)ENTITYunary_generic-expressionABSTRACTSUPERTYPESUBTYPEOF(generic_expression);operand:generic_expression;ENDENTITY;(釜属性定义:operand(操作数):表达了一元操作符的操作数的通用表达式。6.2.8二元通用表达式binary-generic-expression(二元通用表达式)是所有二元操作符的抽象超类。EXPRESS描述:关)ENTITYbinary_generic_expressionABSTRACTSUPERTYPESUBTYPEOF(generic_expression);operands:LIST[2:2]OFgeneric_expression;ENDENTITY;(并属性定义:operands:两个通用表达式的列表。它们分别表达了二元操作符的两个操作数。6.2.9多元通用表达式multiple_arity-generic_expression(多元通用表达式)是所有多元操作符的抽象超类。EXPRESS描述:关)ENTITYmultiple_arity_generic_expressionABSTRACTSUPERTYPESUBTYPEOF(generic_expression);operands:LIST[2:?]OFgeneric_expression;ENDENTITY;(关属性定义:operands(操作数):通用表达式的列表。它们表达多元操作符的操作数。6.3Iso13584通用表达式模式函数的定义本条介绍了ISO13584-generic_expressions_schema的函数。6.3.1判断非循环函数is一。cyclic判断非循环)函数检查表达式的参考图中有没有循环。定义两个函数。第一个函数(命名为isacyclic)有一个genericexpression自变量待检测。接着第 GB/T17645.20-2002/ISO13584-20:1998二个函数调用acyclic(非循环),该函数带两个自变量:generic_expression和一个空集。该空集将被更新,该更新的集合包括一个递归调用到本节点时已访问的节点集合。如果被检测的自变量arg的基础结构是有向非循环图,is一acyclic返回TRUE(真)。如果不是,它返回FALSE(假)。注附录F讨论了对这种结构进行静态分析(例如类型控制、变量收集等)和动态分析(例如求值)的规则EXPRESS描述:关)FUNCTIONis_acyclic(arg:generic_expression):BOOLEAN;RETURN(acyclic(arg,[3));END_FUNCTION;一is_acyclicFUNCTIONacyclic(argl:generic-expression;arg2:SETOFgeneric-expression):BOOLEAN;LOCALresult:BOOLEAN;ENDLOCAL;IF("ISO13584GENERICEXPRESSIONSSCHEMA.SIMPLEGENERICEXPRESSION"INTYPEOF(argl))THENRETURN(TRUE);ENDIF;IFarglINarg2THENRETURN(FALSE);ENDIF;IF"ISO13584GENERICEXPRESSIONSSCHEMA.UNARYGENERICEXPRESSION"INTYPEOF(argL)THENRE丁URN(acyclic(arg1unary-genericexpression.operand,arg2+[argl]));ENDIF;IF"ISO13584GENERICEXPRESSIONSSCHEMA.BINARYGENERICEXPRESSION"INTYPEOF(argl)THENRETURN(acyclic(arglbinary_generic_expression.operandsLIj,arg2+[argI])ANDacyclic(argIbinary_generic_expression.operands[2],arg2+[argI]));ENDIF;IF"ISO13584GENERICEXPRESSIONSSCHEMA.MULTIPLEARITYGENERICEXPRESSION"INTYPEOF(argl)THEN10 GB/T17645.20-2002/ISO13584-20:1998result:=TRUE;REPEATi:=1TOSIZEOF(arglmultiple-arity-generic-expression.operands);result:=resultANDacyclic(arg1multiple-arity-generic-expression.operands[i],arg2+[argl]);ENDREPEAT;RETURN(result):ENDIF;ENDFUNCTIONacyclic6.3.2已使用的变>t函数used_variables(已使用的变量函数)遍历整个通用表达式图,收集所有已使用的变量,并在最后返回它们。该函数遍历表达generic_expression的有向非循环图。注:在ISO13584-generic-expressions-schema中没有使用本函数.它是模式中使用的资源,该资源使用了ISO13584genericexpressionsschema或其可能的专门化的模式。例如,在GB/T17645的其他部分中使用本函数对表达式中出现的变量进行约束EXPRESS描述:FUNCTIONused-variables(arg:generic_expression):SETOFgeneric_variable;LOCALresult:SETOFgeneric-variable:=「〕;ENDLOCAI;IF"ISO13584GENERICEXPRESSIONSSCHEMA.GENERICVARIABLE"INTYPEOF(arg)THENRETURN([arg]);ENDIF;IF"ISO13584GENERICEXPRESSIONSSCHEMA.UNARYGENERICEXPRESSION"INTYPEOF(arg)THENRETURN(used-variables(argunary-generic_expression.operand));ENDIF;IF"ISO13584GENERICEXPRESSIONSSCHEMA.BINARYGENERICEXPRESSION"INTYPEOF(arg)THENRETURN(used-variables(argbinary_generic_expression.operands[I])+used-variables(argbinary-generic-expression.operands[2]));ENDIF;IF"ISO13584_GENERIC_EXPRESSIONS_SCHEMA.MULTIPLE_ARITY_GENERIC_EXPRESSION"INTYPEOF(arg) Gs/T17645.20-2002/ISO13584-20:1998THENREPEATi=1TOSIZEOF(argmultiple_arity_generic_expression.operands);result:=result+usedvariables(argmultiple_arity_generic_expression.operands[iJ);ENDREPEAT;RETURN(result);ENDIF;RETURN(「〕);一inthiscasethesubtypeshallnotcontain一anyvariable(seeIPIingeneric_expression)ENDFUNCTION;一usedvariablesEND_SCHEMA;一ISO13584_generic-expressions-schema(等7ISO13584表达式模式本章定义了ISO13584_expressions_schema的需求。以下EXPRESS声明描述了ISO13584expressions_schema信息块并确认必要的外部引用。EXPRESS描述:关)SCHEMAISO13584_expressions_schema;REFERENCEFROMISO13584-generic-expressions-schema(generic-expression,simple_generic_expression,generic_variable,generic-literal,unary_generic_expression,binary_generic_expression,multiple_arity_generic_expression);(釜了,概述ISO13584expressionsschema(ISO13584表达式模式)提供了使用EXPRESS操作符与函数构造数字、布尔和文字表达式的方法。操作符和函数的名字尽可能采用ISO10303-11:1994中的定义。它们与ISO10303-11:1994中的相应元素具有同样的语义。基础结构是从ISO13584_expressions_schema继承来的。该结构是表达式本身的有向非循环图,节点是操作符、文字值或变量,链表达了操作符与其自变量之间的关系。ISO13584_expressions_schema确保赋予表达式强制类型。任何expression既可以代表数值、又可以代表字符串值或布尔值。从expression的结构可以推断出表达式的数据类型。为了使一个expres-sion能够和一个generic一expression或应用程序定义的、其结果的数据类型是数值、文字或布尔值的函数相关联,ISO13584_expressions_schema包含以下抽象实体:numeric-defined-function(数值定义的函数),integer_defined-function(整数定义的函数),real_defined_function(实数定义的函数),string_defined_function(字符串定义的函数)和boolean_defined_function(布尔值定义的函数)。这些实体提供的值与该实体关联的值的数据类型保持一致。假设generic_expression不是这些实体的子12 GB/T17645.20-2002/ISO13584-20:1998类,那么它的值的数据类型不是ISO13584expressionsschema建立的。ISO13584_expressions_schema包括一个表达式是否可以映射到ISO/IEC9075:1992定义的结构化查询语言(SQL)的信息。为了能够使expression,generic_expression或应用程序定义的函数可映射到SQL语言,ISO13584_expressions_schema包含N下抽象实体:SQL_mappable_defined_func-tion(SQL可映射的定义函数);如果generic-expression是该实体的子类,将会映射到SQI一语言;如果一个generic-expression不是该实体子类,那么我们假设它具有一个不能映射到SQI语言的结构。expressions是由ISO13584-generic-expressions-schema中子类化的generic-expression定义的。在ISO13584-expressions-schema中定义的每个常量、变量和操作符是ISO13584_genericex-pressionsschema中相应的子类。这种对应由每个操作符的操作数元数来定义ISO13584_expressions_schema的对象标识符见本部分规范性附录B.7.2ISO13584表达式模式的所有实体定义7.2.1表达式expression(表达式)实体是限定于数字型、布尔型或字符串型值域的generic-expression.EXPRESS描述:关)ENTITYexpressionABSTRACTSUPERTYPEOF(ONEOF(numeric_expression,booleanexpression,string_expression))SUBTYPEOF(genericexpression);ENDENTITY;(关7.2.1.1变fvariable(变量)是一个实体,它代表由相关环境解释的值。EXPRESS描述:关)ENTITYvariableABSTRACTSUPERTYPEOF(ONEOF(numericvariable,booleanvariable,string_variable))SUBTYPEOF(generic_variable);ENDENTITY;(釜7.2.1.2定义的函数defined_function是一个强制类型函数,它将在使用ISO13584_expressions_schema的信息模型中被子类化。EXPRESS描述:釜)ENTITYdefinedfunctionABSTRACTSUPERTYPEOF((ONEOF(numericdefinedfunction,string-defined-function,booleandefinedfunction)) GB/T17645.20-2002/ISO13584-20:1998ANDORSQL_mappable_defined_function);ENDENTITY;(关7.2.1.3SQL可映射的定义函数SQL_mappable_defined_function是一个函数,它将在使用ISO13584-expressions-schema的信息模型中被子类化,以指出某些generic-expression可以被映射到SQI。EXPRESS描述:圣)ENTITYSQL_mappable_defined_functionABSTRACTSUPERTYPESUBTYPEOF(definedfunction);ENDENTITY;(关7.3ISO13584表达式模式:数值表达式的实体定义7.3.1数值表达式numeric_expression(数值表达式)是一个表达式,其取值范围在ISO10303-11:1994的8.1.1中定义的NUMBER数据类型内。EXPRESS描述:关)ENTITYnumericexpressionABSTRACTSUPERTYPEOF(ONEOF(simplenumericexpression,unary_numeric-expression,binary_numeric-expression,multiple_arity_numeric_expression,length-function,valuefunction,numericdefinedfunction))SUBTYPEOF(expression);DERIVEisint:BOOLEAN:=isintexpr(SELF);sql-mappable:BOOLEAN:=is_SQL_mappable(SELF);ENDENTITY;(釜属性定义:isin“判断整型):布尔型属性,它判定表达式的值是否为整型。sql_mappable(sql可映射的):布尔fN属性,它判断表达式是否可映射到SQI一语言。7.3.2简单数值表达式simple一numeric一expression简单数值表达式)既可以是数值型文字,又可以是数值型变量。EXPRESS描述:关)ENTITYsimple_numeric_expressionABSTRACTSUPERTYPEOF(ONEOF(literalnumber,numericvariable))SUBTYPEOF(numericexpression,simple_genericexpression); GB/T17645.20-2002/ISO13584-20:1998ENDENTITY;(关7.3.3数值型文字literalnumber(数值型文字)是EXPRESSNUMBER文字。它既可以是整型数文字,又可以是实型数文字。注EXPRESSNUMBER数据类型有一个数值域。EXPRESS描述:关)ENTITYliteralnumberABSTRACTSUPERTYPEOF(ONEOF(intliteral,realliteral))SUBTYPEOF(simple_numeric_expression,generic-literal);thevalue:NUMBER;ENDENTITY;(关属性定义:thevalue(值):NUMBER文字值。7.3.4整型数文字intliteral(整型数文字)是EXPRESSINTEGER文字。注:EXPRESSINTEGER文字表达了由一个或多个阿拉伯数字组成的整数值。EXPRESS描述:关)ENTITYintliteralSUBTYPEOF(literalnumber);SELFliteralnumber.thevalue:INTEGER;ENDENTITY;(关属性定义:thevalue:INTEGER文字值。了.3.5实型数文字realliteral(实型数文字)是EXPRESSREAL文字。注:EXPRESSREAL文字表达了由含小数点的尾数和可选幕组成的实数值EXPRESS描述:苦)ENTITYrealliteralSUBTYPEOF(literalnumber);SELFliteral_number.the_value:REAL;ENDENTITY;(关属性定义:thevalue:REAI文字值。7.3.6数值变fnumericvariable(数值变量)实体是代表数值的变量。EXPRESS描述:t5 GB/"r17645.20-2002/ISO13584-20:1998朴)ENTITYnumericvariableSUPERTYPEOF(ONEOF(intnumericvariable,realnumericvariable))SUBTYPEOF(simple_numeric_expression,variable);WHEREWRl:("ISO13584EXPRESSIONSSCHEMA.INTNUMERICVARIABLE"INTYPEOF(SELF))OR("ISO13584EXPRESSIONSSCHEMA.REALNUMERICVARIABLE"INTYPEOF(SELF));ENDENTITY;(关形式限制:WR1:numericvariable可能是实型变量或整型变量。7.3.7整型数值变fintnumericvariable(整型数值变量)实体是代表整数值的变量,EXPRESS描述:釜)ENTITYintnumericvariableSUBTYPEOF(numericvariable);ENDENTITY;(关7.3.8实型数值变.real_numeric_variable(实型数值变量)实体是代表实数值的变量。EXPRESS描述:关)ENTITYrealnumericvariableSUBTYPEOF(numericvariable);ENDENTITY;(苦7.3.9一元数值表达式unary_numeric_expression(一元数值表达式)实体进行一元操作,其取值范围在ISO10303-11:1994中定义的NUMBER数据类型内。EXPRESS描述:爷)ENTITYunary_numeric_expressionABSTRACTSUPERTYPEOF(ONEOF(unary-function-call))SUBTYPEOF(numeric-expression,unary_generic-expression);SELFunary-generic_expression.operand:numeric_expression;ENDENTITY;(补属性定义:operand(操作数):表达一元操作符参数的数值表达式。16 GB/T17645.20-2002/ISO13584-20:19987.3.10二元数值表达式binary_numeric_expression(二元数值表达式)实体进行二元操作,其取值范围在ISO10303-111994中定义的NUMBER数据类型内。EXPRESS描述:斧)ENTITYbinary_numeric_expressionABSTRACTSUPERTYPEOF(ONEOF(minus_expression,div_expression,modexpression,slashexpression,power_expression,binary_function_call))SUBTYPEOF(numeric-expression,binary-generic-expression);SELFbinary-genericexpression,operands:LIST[2:2]OFnumericexpression;ENDENTITY;属性定义:operands:包含二元操作符两个参数的列表。7.3.11多元数值表达式multiple_arity_numeric_expression(多元数值表达式)实体实现多元操作,其取值范围在ISO10303-11:1994中定义的NUMBER数据类型内。EXPRESS描述:关)ENTITYmultiple_arity_numeric_expressionABSTRACTSUPERTYPEOF(ONEOF(plusexpression,multexpression,multiple-arity-function_call))SUBTYPEOF(numeric_expression,multiple-arity_generic-expression);SELFmultiple_arity-generic_expression.operands:LIST[2:?]OFnumericexpression;ENDENTITY属性定义:operands:包含多元操作符所有参数的列表。列表的长度等于操作符的元数。7.3.12长度函数length_function(长度函数)实体实现ISO10303-11:1994中定义的LENGTH函数的语义。注:长度函数返回字符串中的字符个数。-parameters(参数):具有字符串数据类型值的string_expression.—result(结果):返回值是字符串中字符的个数,并且应该大于或等于零。EXPRESS描述:关)17 GB/T17645.20-2002/ISO13584-20:1998ENTITYlength_functionSUBTYPEOF(numeric_expression,unary-generic-expression);SELFunary-generic-expression.operand:string_expression;ENDENTITY;(关属性定义:SELFunary-generic_expression.operand:字符串的长度由length-functio。表达。7.3.13值函数value_function(值函数)实体实现ISO10303-11:1994中定义的VALUE函数的语义。当string-expression表达的值是整数并与operand继承的属性一致时,应该使用int_value_function(整数值函数)子类。注:值函数返回字符串的数值表达。-parameters:string_expression传递字符串数据类型的值。-result:与字符串表达对应的数。EXPRESS描述:关)ENTITYvaluefunctionSUPERTYPEOFOutvaluefunction)SUBTYPEOF(numeric_expression,unary-generic_expression);SELFunary-generic-expression.operand:string-expression;ENDENTITY;(斧属性定义:SELFunary-generic-expression.operand:用value_function表达其值的字符串表达式。7.3.14整数值函数int_value_function(整数值函数)实体实现ISO10303-11:1994中定义的VALUE函数的语义,并可以断定string_expression表达了一个整数,并与。perand继承的属性一致。注:整数值函数返回字符串的整数表达。-parameters:string_expression实现一个字符串数据类型的值。—result:与字符串表达对应的整数。EXPRESS描述:补)ENTITYintvaluefunctionSUBTYPEOF(valuefunction);ENDENTITY;(若非形式限制:IPI:与operand属性一致的string-expression将求出一个表达整数的字符串。7.3.15数值定义的函数numeric_defined_function(数值定义的函数)实体是一个函数,其取值范围在ISO10303-11:1994中定义的NUMBER数据类型内。EXPRESS描述:关) GB/T17645.20-2002/ISO13584-20:1998ENTITYnumericdefinedfunctionABSTRACTSUPERTYPEOF(ONEOF(integer-defined-function,realdefinedfunction))SUBTYPEOF(numeric-expression,defined_function);ENDENTITY;(关7.3.16加法表达式plus_expression(加法表达式)实体实现ISO10303-11:1994中定义的、涉及NUMBER数据类型的“+”操作符的语义。注:plus_expression是计算其所有操作数总和的表达式在ISO13584-expressions-schema中,所有这些操作数将计算出一个在数值数据类型域内的数.EXPRESS描述:关)ENTITYplusexpressionSUBTYPEOF(multiple_arity_numeric_expression);ENDENTITY;(关7.3.17减法表达式minusexpression(减法表达式)实体实现ISO10303-11;1994中定义的、涉及NUMBER数据类型的“一”操作符的语义。注:minus_expression是计算其操作数差的表达式。在ISO13584-expressions-schema中,所有这些操作数将计算出一个在数值数据类型域内的数EXPRESS描述:关)ENTITYminusexpressionSUBTYPEOF(binarynumericexpression);ENDENTITY;l关7.3.18乘法表达式multexpression(乘法表达式)实体实现ISO10303-11:1994中定义的、涉及NUMBER数据类型的“,”操作符的语义。注:mult_expression是计算其所有操作数的乘积的表达式。在ISO13584-expressions-schema中,所有这些操作数应为一个在数值数据类型域内的数。EXPRESS描述:斧)ENTITYmult_expressionSUBTYPEOF(multiple_arity_numeric_expression);ENDENTITY;(关7.3.19整除表达式div_expression(整除表达式)实体实现ISO10303-11:1994中定义的、涉及NUMBER数据类型的"DIV”操作符的语义。注:div_expression是计算其操作数整除的表达式.在ISO13584-expressions_schema中,所有这些操作数将计19 GB/"r17645.20-2002/ISO13584-20:1998算出一个在数值数据类型域内的数计算结果是整数.EXPRESS描述:关)ENTITYdiv_expressionSUBTYPEOF(binary_numeric_expression);ENDENTITY;r圣非形式限制:IP1:SELFbinary-generic-expression.operands[2]的值不能为。。7.3.20求模数表达式mod_expression(求模数表达式)实体实现ISO10303-11:1994中定义的、涉及NUMBER数据类型的“MOD",操作符的语义。注:mod_expression是计算第一个自变量除以第二个自变量所得整除余数的表达式在ISO13584一expressionsschema中,所有这些操作数将计算出一个数值数据类型域内的数。计算结果是整数。EXPRESS描述:关)ENTITYmod_expressionSUBTYPEOF(binary_numeric_expression);ENDENTITY;(关7.3.21除法表达式slash_expression(除法表达式)实体实现ISO10303-11:1994中定义的、涉及NUMBER数据类型的EXPRESS"/"操作符的语义。注:slash_expression是计算第一个操作数除以第二个操作数的除法表达式。其操作数将计算成数值数据类型域内的数。计算结果是实数EXPRESS描述:关)ENTITYslashexpressionSUBTYPEOF(binary_numeric_expression);ENDENTITY;(关非形式限制:IP1:SELFbinary_generic_expression.operands[2]的值不应该是。。7.3.22幂表达式power_expression(幂表达式)实体实现ISO10303-11:1994中定义的、涉及NUMBER数据类型的EXPRESS"-‘”操作符的语义。注power_expression是以其第二个操作数为指数、求其第一个操作数的幂的表达式。在数值数据类型域内进行计算。计算结果是实数EXPRESS描述:关)ENTITYpower_expressionSUBTYPEOF(binary_numeric_expression);ENDENTITY;(并20 GB/T17645.20-2002/ISO13584-20:19987.3.23一元函数调用unary_function_call(一元函数调用)是ISO10303-11:1994定义的、涉及NUMBER数据类型的一元操作符。EXPRESS描述:斧)ENTITYunary-function_callABSTRACTSUPERTYPEOF(ONEOF(absfunction,minusfunction,sinfunction,cosfunction,tanfunction,asinfunction,acosfunction,expfunction,log_function,log2_function,log10junction,square-root_function))SUBTYPEOF(unary_numeric_expression);ENDENTITY;(釜7.3.24二元函数调用binary_function_call(二元函数调用)是ISO10303-11:1994定义的、涉及NUMBER数据类型的二元操作符。EXPRESS描述:斧)ENTITYbinary_function_callABSTRACTSUPERTYPEOF(ONEOF(atanfunction))SUBTYPEOF(binary_numeric_expression);ENDENTITY;(釜7.3.25多元函数调用multiple-arity-function_call(多元函数调用)是ISO10303-11:1994定义的、涉及NUMBER数据类型的多元操作符。EXPRESS描述:关)ENTITYmultiple-arity_function-callABSTRACTSUPERTYPEOF(ONEOF(maximumfunction,们ummumfunction))SUBTYPEOF(multiple_arity_numeric_expression);ENDENTITY;(补 GB/T17645.20-2002/ISO13584-20:19987.3.26求绝对值函数absfunction(求绝对值函数)实体实现ISO10303-11:1994定义的、涉及NUMBER数据类型的"ABS”函数的语义。注ABS函数返回一个数的绝对值。parameters:numeric_expression(数值表达式)是一个NUMBER数据类型的值。—result:返回参数的绝对值。返回值的数据类型和参数中的一个数据类型相同。EXPRESS描述:关)ENTITYabsfunctionSUBTYPEOF(unary_function_call);ENDENTITY;(苦了.3.2了负函数minusfunction(负函数)实体实现ISO10303-11:1994定义的、涉及NUMBER数据类型的EX-PRESS一元“一”操作符的语义。注:负函数返回该数的反值。-parameters:numeric_expression是一个NUMBER数据类型值。—result:参数的反值。返回值的数据类型和参数的数据类型相同。EXPRESS描述:关)ENTITYminusfunctionSUBTYPEOF(unary_function_call);ENDENTITY;(关7.3.28正弦函数sin_function(正弦函数)实体实现ISO10303-11:1994定义的EXPRESS"SIN”函数的语义。注:SIN函数返回角的正弦值。—parameters:numeric_expression是一个NUMBER数据类型的值,该值是弧度单位表示的角度值。-result:角参数的正弦值(-1.OGresult镇1.0)。EXPRESS描述:斧)ENTITYsinfunctionSUBTYPEOF(unary_function_call);ENDENTITY;r苦7.3.29余弦函数function(余弦函数)实体实现ISO10303-11:1994定义的EXPRESS"COS",函数的语义。注:COs函数返回角的余弦值—parameters:numeric_expression是一个NUMBER数据类型的值,该值是弧度单位表示的角度值。-result:角参数的余弦值(一1.0Gresult毛1.0)。EXPRESS描述:22 cB/T17645.20-2002/ISO13584-20:1998ENTITYcosfunctionSUBTYPEOF(unary_function_call)ENDENTITY:(关7.3.30正切函数tan_function(正切函数)实体实现ISO10303-11:1994定义的EXPRESS"TAN",函数的语义。注:TAN函数返回角参数的正切值。parameters:numeric_expression是一个NUMBER数据类型值,该值是弧度单位表示的角度值。—result:参数的正切值(一1.0”)操作符的语义,其比较的操作数是ISO10303-11:1994定义的NUMBER,BOOLEAN或STRING数据类型的值。两个操作数应该具有相同的数据类型。注:如果第一个操作数的值大于第二个操作数的值,comparison_greater返回的值为TRUE。依照的相应顺序是:—实数的数学排序;-FALSE=”)操作符的语义,其比较的操31 GB/T17645.20-2002/ISO13584-20:1998作数是ISO10303-11:1994定义的NUMBER,BOOLEAN或STRING数据类型的值。两个操作数应该具有相同的数据类型。注:如果第一个操作数的值大于或等于第二个操作数的值,comparison_greater-equal返回的值为TRUE。依照的相应顺序是:—实数的数学排序协-FALSE”)操作符的语义,其比较的操作数是ISO10303-11:1994定义的NUMBER,BOOLEAN或STRING数据类型的值。两个操作数应该具有相 GB/T17645.20-2002/ISO13584-20:1998同的数据类型。注:如果第一个操作数的值与第二个操作数的值不同,comparison_not_equal返回的值为TRUE依照的相应顺序是:—实数的数学排序;-FALSE3)进行ISO13584_generic_expressions_schema的专门研究。a)通过子类化generic-expression(numeric_expression,Boolean_expression或stringexpression)实体定义属于新数据类型的所有表达式的根。b)通过对generic_variables实体的子类化来定义这些表达式中的变量。由environment实体把第二步定义的语义与变量相关联。c)通过对generic-literal实体的子类化来定义这些表达式的常量。d)结合新数据类型的变量和常量定义操作符。通过子类化unary_generic_expression,bi-nary-generic-expression和multiple-arity-generic-expression实体按它们的元数得到这些操作符。制定规则以保证这些操作符语义的完善性和正确性。4)与ISO13584_expressions_schema的集成。a)如果任何操作符计算出的值是expressions中的新数据类型(例如由两个实数定义的复数),那么—引用ISO13584_expressions_schema;—如果按3)a)的步骤定义这个操作符为根实体的公共数据类型,那么它是如下实体之一:unary_generic_expression,binary_generic_expression和multiple_arity_generic_expression。制定规则以保证这些操作符语义的正确性。b)如果新数据类型的任何操作符能够产生ISO13584_expressions_schema基础数据类型的一个值,那么每个操作符或函数返回整型、实型、布尔型或字符串型,由definedfunc-tion实体定义的相应函数与unary-generic-expression,binary-generic_expression或multiple-arity-generic_expression实体中的一个相一致。这个过程保证:—任何与指定模式一致的表达式在语义上是正确的,并且;—本部分作为资源给出的函数(如,s_int_expr,used_variables,is_SQL_mappable等)与其抽象描述一致。注:在ISO13584expressionsschema模式专门化的情况下,应跳过第三步。E.5ISO13584通用表达式模式专门化的例子在这个例子中,为了使专门化更便于理解,尽可能简化了EXPRESS注释。为了处理涉及复数的表达式,让我们考虑ISO13584_generic_expressions模式的专门化。这些表达式是由子类化ISO13584-generic_expressions-schema得到的。如下EXPRESS描述给出了这种模式的核心。其中仅涉及了几个表达式。—第一步:定义复数数据类型。—第二步:定义复数表达式的语义概念。假设我们把这些表达式与二维cartesianpoint(笛卡尔点)的一对坐标相关联,笛卡尔点在GB/T16656.42-1998中定义。可以定义与复变量关联的下列语义。EXPRESS描述:67 GB/T17645.20-2002/ISO13584-20:1998关)ENTITYposition_variable_semanticsSUBTYPEOF(variable_semantics,cartesian_point);WHERESELF陌eometric_representation_item.dimension=2;ENDENTITY;(关语义应该是一个二维点并在文档中规定实数部分是z坐标,虚数部分是y坐标。注意假设,在这个例子中,不需要point_expressions.—第三步:由ISO13584-generic-expression-schema的专门化定义complexexpression(复数表达式)。EXPRESS描述:爷)ENTITYcomplexexpressionSUBTYPEOF(generic-expression)ASTRACT_SUPERTYPEOF(ONEOF(simple_complex_expression,unary_complex_expression,binary_complex_expression,multiple_arity_complex_expression));ENDENTITY;ENTITYsimple_complex_expressionABSTRACTSUPERTYPE(OFONEOF(complex_variable,complex_literal));SUBTYPEOF(complex-expression,simple-generic-expression);ENDENTITY;ENTITYcomplex_variable;SUBTYPEOF(simple-complex-expression,generic-variable);ENDENTITY;ENTITYcomplex_literalSUBTYPEOF(simplecomplex_expression,generic-literal);real-part,imag_part:REAL;ENDENTITY;ENTITYunary_complex_expressionENDENTITY;ENTITYbinary_complex_expressionENDENTITY;ENTITYmultiple_arity_complex_expressionENDENTITY;ENTITYpositioncartesianconstructorSUBTYPEOF(complexexpression,binarygenericexpression)68 GB/T17645.20-2002/ISO13584-20:1998x,y:REALENDENTITY;ENTITYposition_polar_constructorSUBTYPEOF(complexexpression,binarygenericexpression);to,theta:REAL.ENDENTITY:—第四步:ISO13584expressionsschema的专门化由定义如下实体给出EXPRESS描述:关)ENTITYrealpartdefinedfunctionSUBTYPEOF(real_defined_function,unary_generic_expression);the_complex:complex_expression;ENDENTITY;ENTITYimaginary_part_defined_functionSUBTYPEOF(real_defined_function,unary_generic_expression)the-complex:complex_expression;ENDENTITY;ENTITYangle_defined_functionSUBTYPEOF(real_defined_function,unary_generic_expression);ENDENTITY;ENTITYmoduledefinedfunctionSUBTYPEOF(real-defined-function,unary_generic-expression);ENDENTITY;(关注意:以上模式是不完整的,它没有给复数表达式提供标准的模式。E.6ISO13584表达式模式专门化的例子这个例子与前面跳过的第三步的情况对应。要引人操作符来计算笛卡儿坐标空间的两点间距离。函数应返回一个实数。与这个函数对应的实体通过专门化获得。这个实体是real_defined_function的子类,定义了下述实体EXPRESS描述:关)ENTITYdistancefunctionSUBTYPEOF(realdefinedfunction);ptl,pt2:point;ENDENTITY;(关69 GB/T17645.20-2002/1S013584-20:1998附录F(资料性附录)表达式的静态分析F.1概述在GB/T17645的本部分的环境中,主要考虑表达式。根据第5章的概念和假设定义两种可能的观点:交换阶段和求值阶段。在本部分中只处理了表达式的交换。在这个阶段仅对表达式的静态属性进行了推论。它既不对求值函数也不对怎样进行求值进行建模。本附录回顾了在交换阶段表达式执行过程的分析,并给出了这个过程的一些解释。在通用表达式层,使用变量和函数计算是可行的。更进一步说,使用非循环图来表达表达式是可以得到验证的。在表达式层,它可以计算出一个表达式的数据类型值。F.2判断非循环函数需强调的是:有向图是一些有向连接节点的集合。如果有向图中从一个节点没有返回它自己的路径,那么有向图是非循环的。根据本部分陈述的概念和假设,图的基础结构是有向非循环图。这个结构强制遍历表达式。确切地说,它保证所有函数按这个图进行遍历,并在遍历到一个节点且没有其他节点再与它链接时终止。is一acyclic(判断非循环)函数检查表达式是否满足这个条件。注:树是一个有向非循环图的特例。F.3被使用的变t和被使用的函数usedvariables返回表达式中使用的变量,usedfunctions返回表达式中使用的函数。这些函数遍历表达表达式的有向非循环图,如求值和类型合成,并返回这个表达式中出现的变量和函数。F.4判断SQL可映射的函数is_SQL_mappable(判断SQL可映射的)函数检查给定的表达式是否可以映射为查询数据库的SQL语言。这个函数遍历表示表达式的有向非循环图,如求值和类型合成,如果表达式是可以映射的,函数返回真。在ISO/DIS13584-24:1999标准中,这个函数用来处理与表和关系数据库相关的数据结构。它用于检查约束中几个表达式的可映射性。F.5类型控制和类型合成类型控制对表达式中的类型进行正确性检查。类型合成允许对表达式中的数据类型进行合成。请注意:在本部分定义的ISO13584一expressions_schema中,类型控制是由本模式的约束条件保证的。类型合成是由带数据类型的EXPRESSTYPEOF函数的应用导出的。70 Gs/T17645.20-2002/ISO13584-20:1998索引定义一元操作符unaryoperator····················································································⋯⋯4二元操作符binaryoperator·················································,.·································⋯⋯2子节点childnode··································································································⋯⋯2父节点parentnode·········································································。····················⋯⋯2节点node···············································。····························。·····························⋯⋯2后辈节点descendentnode·····················································································,·⋯⋯2多元操作符multiplearityoperator···························································⋯⋯’二’二‘二‘二‘二3有向非循环图directedacyclicgraph··········································································⋯⋯2求值evaluation····························································,········································⋯⋯3实体entity···········································································,.···························。··⋯2实体(数据类型)实例entity(datatype)instance·······························。··········⋯⋯’二’二‘二’二’二2实体数据类型entitydatatype.......................................................................................2环境environment·。·····························································································⋯⋯2表达式expression······································································。······················⋯⋯3表达式数据类型expressiondatatype·······················································⋯⋯‘········⋯⋯3前辈节点ancestornode··········································。···············································⋯⋯2变量variable····································································································⋯⋯4按语法规则表达syntacticrepresentation·······································。················⋯⋯‘二“二’二3类型合成typesynthesis·······················································································⋯⋯4类型控制typecontrol...................................................................................................3语义semantics····································································································⋯⋯3链link················,·····························································································⋯⋯2数据类型·········································································································⋯⋯1解释interpretation···············。······························。·······。··························”··········⋯⋯.3操作符。perator·························································································。····⋯⋯3操作符的元arityofanoperator········。················。····················································⋯⋯2EXPRESS资源absfunction···································································································⋯⋯22acesfunction........................................................········································⋯⋯23and_expression·······················。···································································。·······⋯⋯30asinfunction······。·································。···························································⋯⋯23atanfunction·····························································································⋯⋯25.49binary_boolean_expression.......................................................................................28binary_function_call···································。·················。·······················⋯⋯‘·····⋯⋯21binary-generic-expression··················································································⋯⋯9binary_numeric一expression········································,······································⋯⋯17booleandefinedfunction··································。。···。·。···..·.··.·············.·············⋯⋯5,34booleanliteral··············。···········································。。。···········。·······················⋯⋯27booleanvariable···············································································。···············⋯⋯27comparisonequal·······························································································⋯⋯3171 GB/T17645.20-2002/ISO13584-20:1998八0Jcomparison_expression八,j1comparison-greatern,jescomparison_greater_equal,ocomparison-lessJ曰八n乃comparison-less_equal户月为,comparison_not_equal︺件行J了concat_expression.............................................................................。一,·.············⋯⋯n,cosfunction曰曰I八LndefinedfunctionIodiv_expression衬0曰environment八0equals_expression·······························································································⋯⋯乙朴7qjexp_function︺,nj工expression内OJUformatfunction门只format_stringJ︺众月generic_expression乃了generic-literal.CUgeneric_variable‘esinintliterall~bintnumericvariablellOintvaluefunctionOn八h乙integer-defined_function﹃乃nJintervalexpression。山intervalhigh八二口月任intervalitem··········································。··········....·..·...········...·..⋯⋯。..·..·.....·..·‘·、.⋯dn月合件intervallowOisacyclicJ1月土性isint介Q自︺ismtexpr注?lSSQLmappable占︼1qISO13584土曰expressionsschema5,ISO13584_generic-expression-schemaISO13584-generic_expressions_schema;,:I曰‘length一function·······················。·。·······。···············································⋯⋯’二‘二’二’二‘二‘二nnlikeexpression···。····································································。··························⋯⋯j口l二literalnumberl︺八月件乙log_functionqJ曰口Log10一function···········。··························································⋯⋯‘··⋯⋯’二’二““‘·⋯‘二0月乙一Log2-functionQ尸0maximumfunction︸月1从minimumfunction乙刁1n﹄minusexpression72 GB/T17645.20-2002/ISO13584-20:1998minusfunction.⋯。..........⋯⋯”。......···...···...·....⋯⋯”.........·‘.....。·....·。·...·.⋯⋯22mod_expression·······························································································⋯⋯20mult_expression················································,········································⋯⋯19multiple一arity_boolean_expression····························”·········································⋯⋯29multiple一arity_function_call···························································⋯⋯’二’二”·’二’二’二21multiple一arity-generic_expression·········,.····················⋯⋯‘二‘二‘·⋯⋯‘二‘二‘二‘二‘二‘··⋯⋯9multiple一arity_numeric一expression·····。······························································⋯⋯17not_expression································································································⋯⋯28numericdefinedfunction·············································································⋯⋯18numericexpression··························‘········,.·····················································⋯⋯14numericvariable·································.·························································⋯⋯15oddfunction···············.······.··································⋯⋯。.·························.··.·····⋯⋯28orexpression........................................................................................................30plus~expression···························································································⋯⋯19power_expression·························································································⋯⋯20realdefinedfunction····················································································⋯⋯26realliteral.。。··········。······。··············....O.O.·····....······························。。····。。······⋯⋯15realnumericvariable·············································································。····⋯⋯16simple一boolean_expression·························································,···················⋯⋯27simple一generic一expression·······························”·················································。··⋯7simplenumericexpression············································································⋯⋯14simple-string-expression······································,········································⋯⋯35sinfunction··············。·························.·····.·················································⋯⋯22slashexpression··············································································,·············⋯⋯20sql_mappable·············“·········”·············“············”············································⋯⋯14SQL_mappable_defined_function···································································⋯⋯‘二14square-root-function······················································,.·····························⋯⋯25string_defined_function·······················································································⋯⋯38string_expression··············································“···············································⋯⋯35string-literal···································································································⋯⋯35string-variable·································,.·······,’····················································⋯⋯36substring_expression··························································································⋯⋯36tanfunction·····································································································⋯⋯22unary_boolean_expression·····························································。··············。·····⋯⋯27unary_function_call................................................................................................21unary-generic_expression··················································································⋯⋯9unary_numeric一expression···············································································⋯⋯16usedfunction·······························································································⋯⋯45usedvariables.······.·.·...·..······.··..······...·.’.·.·········。···········································⋯⋯11valuefunction········...···.⋯⋯。·.....O........。·......·.O..···········································⋯⋯18valuetoformat⋯⋯“··.·.·····⋯⋯:.···.··.·..·············································。··⋯⋯38variable································································································.··。·。··⋯13variablesemantics..............................................................·····。·····················⋯⋯6,8xorexpression························································。·······················。················⋯⋯2973 GB/"r17645.20-2002/ISO13584-20:1998参考文献1.GB/T16262-1996信息处理系统开放系统互连抽象语法记法一(ASN.1)规范(idtISO8824-1:1990)2.GB/T16656.42-1998工业自动化系统和集成产品数据表达与交换第42部分:集成通用资源:几何与拓扑表达(idtISO10303-42:1994)3.GB/T16656.45-2001工业自动化系统和集成产品数据表达与交换第45部分:集成通用资源:材料(idtISO10303-45:1998)4.GB/T17645.1-2001工业自动化系统与集成零件库第1部分:综述与基本原理(idtISO13584-1:1999)5.ISO/DIS13584-24:1999工业自动化系统与集成零件库第24部分:逻辑资源:供应商库的逻辑模型'