GB/T 38113-2019 分析仪器物联规范
- 名 称:GB/T 38113-2019 分析仪器物联规范 - 下载地址1
- 下载地址:[下载地址1]
- 提 取 码:
- 浏览次数:3
发表评论
加入收藏夹
错误报告
目录| 新闻评论(共有 0 条评论) |
资料介绍
ICS 7 1 . 040 . 10 N 53
中 华 人 民 共 和 国 国 家 标 准
GB/T 381 13—2019
分析仪器物联规范
Specificationforinternetofthingsforanalyticalinstruments
2019-10-18 发布 2020-02-01 实施
国家市场监督管理总局中国国家标准化管理委员会
发
布
GB/T 38 1 13—2019
GB/T 38 1 13—2019
前 言
本标准按照 GB/T 1 . 1—2009 给出的规则起草。
本标准由中国机械工业联合会提出。
本标准由全国工业过程测量控制和自动化标准化技术委员会(SAC/TC 124)归口 。
本标准起草单位:上海市计算技术研究所、上海上科信息技术研究所、上海舜宇恒平科学仪器有限公司、杭州市中辉科学器材有限公司、北京雪迪龙科技股份有限公司、清谱(上海)分析仪器有限公司、山东山宇环境科技有限公司、长春吉大 · 小天鹅仪器有限公司、北京华夏科创仪器技术有限公司、上海软中信息技术有限公司、汉威科技集团股份有限公司、广州讯动网络科技有限公司、重庆创晖科技有限公司、南京分析仪器厂有限公司、南京霍普斯科技有限公司、钢研纳克检测技术有限公司、上海伍丰科学仪器有限公司、聚光科技(杭州)股份有限公司、上海磐合测控技术股份有限公司、深圳市麦斯达夫科技有限公司、苏州市计量测试院、河北先河环保科技股份有限公司、恩德斯豪斯(中国)自动化有限公司、上海纽钛测控技术有限公司、中国仪器仪表行业协会和上海产业技术研究院。
本标准主要起草人:张敬周、李钧、王志宏、吴华忠、郜武、王世立、董占勇、高德江、张新民、宋俊典、陈海永、陈新泉、郑杰、刘虎、陈海、顾潮春、赵英飞、徐伯元、赵忠欣、徐国平、杨玺、郑波、任豪、杨建虎、谭海玲、袁旭军、马雅娟、袁满满。
GB/T 38 1 13—2019
引 言
分析仪器种类多样、智能化水平各有差异,分析仪器相关的大数据和智能化应用需要一个通用的框架,来实现各类分析仪器的网络化测控、分析、共享、协同、运维、管理和数据服务等,本标准就提供了这样一个通用框架。
实施本标准,可:
— 方便地实现不同分析仪器之间的联动、数据交互和共享;
— 提高分析仪器开发、生产、管理和使用活动中 IT部分的复用度,提高产品的智能化水平;
— 减少分析仪器相关 IT应用系统或平台的开发、运维和服务成本,降低项目实施风险;
— 提高分析仪器相关的大数据建设的效率,提高数据管理、数据质量和大数据应用水平。
GB/T 38 1 13—2019
分析仪器物联规范
1 范围
本标准规定了分析仪器的术语和定义、缩略语、约定、物联框架、物联过程、物联模型、数据交换过程以及相关的形式化表达方法。
本标准适用于指导分析仪器物联相关的信息系统设计、开发、运维及数据服务等活动。
2 规范性引用文件
下列文件对于本文件的应用是必不可少的。 凡是注 日期的引用文件,仅注 日期的版本适用于本文件 。凡是不注日期的引用文件,其最新版本(包括所有的修改单)适用于本文件。
GB/T 13000—2010 信息技术 通用多八位编码字符集(UCS)
GB/T 13966—2013 分析仪器术语
3 术语和定义、缩略语
3 . 1 术语和定义
GB/T 13966—2013 界定的以及下列术语和定义适用于本文件。
3 . 1 . 1
实体分析仪器 entityanalyticalinstrument
实体仪器
物联至网络的分析仪器。
3 . 1 . 2
虚拟分析仪器 virtualanalyticalinstrument
虚拟仪器
实体仪器在网络中的代理。
3 . 1 . 3
仪器映射器 analyticalinstrumentmapper
映射器
实现实体仪器与虚拟仪器之间数据绑定的软件密集型系统。
3 . 1 . 4
分析仪器物联 analyticalinstrumentbecomingthingsofinternet
通过网络实现对分析仪器的测量分析、控制协同、数据共享及管理等。
注:一台分析仪器实现物联后应包含三个部分:实体仪器、虚拟仪器和映射器。
3 . 1 . 5
软件服务 softwareservices
实现特定功能、通过访问接口在线响应外部调用请求的软件密集型系统。
GB/T 38 1 13—2019
3 . 1 . 6
仪器注册中心 analyticalinstrumentregistry
注册中心
为各分析仪器提供物联信息的发布、发现等服务的软件服务。
3 . 1 . 7
物联对象 objectsofinternetofthingsforanalyticalinstruments
对分析仪器物联涉及的组件的统称。
注:主要有实体仪器、虚拟仪器、映射器和注册中心等。
3 . 1 . 8
物联标准件 formalobjectsofinternetofthingsforanalyticalinstruments
提供标准化接口、可网络化访问的分析仪器物联对象。
注:主要有虚拟仪器、注册中心。
3 . 1 . 9
物联信息模型 informationmodelsofinternetofthingsforanalyticalinstruments
物联模型
对描述分析仪器物联相关信息的若干个信息模型的统称。
注:主要分为四类:仪器信息模型、注册中心信息模型、访问接口信息模型和元数据信息模型。
3 . 1 . 10
物联默认模型 defaultinformationmodelsofinternetofthingsforanalyticalinstruments
对描述分析仪器物联相关信息的共性部分的若干个信息模型的统称。
注:主要包括四个:仪器默认模型、注册中心默认模型、访问接口默认模型和元数据默认模型。 特定的物联模型均应扩展自同类型的物联默认模型,如仪器模型应扩展自仪器默认模型。
3 . 1 . 1 1
仪器信息模型 informationmodelsofanalyticalinstruments
仪器模型
用于描述虚拟仪器可对外交互的信息的数据模型。
3 . 1 . 12
仪器注册中心信息模型 informationmodelsofanalyticalinstrumentsregistry
注册中心模型
用于描述仪器注册中心的数据模型。
注:主要包括四类:注册中心入口信息模型、仪器黄页库信息模型、物联剖面库信息模型和元数据库信息模型。
3 . 1 . 13
访问接口信息模型 informationmodelofaccessinterface
访问接口模型
用于描述物联标准件提供的访问接口的数据模型。
3 . 1 . 14
元数据信息模型 informationmodelofmetadata
元数据模型
用于描述元数据的数据模型。
3 . 1 . 15
数据规约语言 dataspecificationlanguage
DSL语言
用于描述分析仪器物联模型、剖面、元数据和访问接口等的形式化语言。
GB/T 38 1 13—2019
注:具体形式化定义参见附录 A。
3 . 1 . 16
剖面 profileofaninformationmodel
采用 DSL语言、对信息模型的一个信息子集的形式化表达。
注:用于实现对该模型的特定共享 目 的 。
3 . 1 . 17
模型主剖面 mainprofileofaninformationmodel
主剖面
采用 DSL语言、对信息模型的信息全集的形式化表达。
3 . 1 . 18
物联剖面 profilesofinternetofthingsforanalyticalinstruments
对分析仪器物联信息模型的剖面的统称。
注:主要分四类:仪器剖面、注册中心剖面、访问接口剖面和元数据剖面。
3 . 1 . 19
物联默认剖面 defaultprofilesofinternetofthingsforanalyticalinstruments
默认剖面
物联默认模型的主剖面。
3 . 1 . 20
默认访问接口 defaultaccessinterface
由物联标准件提供的、符合访问接口默认剖面规定的对外访问接口 。
3 . 1 . 2 1
模型的主类 mainclassofinformationmodel
主类
物联信息模型中的一个类,其名称作为相应物联剖面的键值对表达式中的“键”。
3 . 1 . 22
父/子模型 parent/childinformationmodel
在已有物联模型基础上可以扩展形成新的信息模型,新生成的信息模型为已有信息模型的子模型,已有信息模型为子模型的父模型。
3 . 1 . 23
键值对 key-valuepair
由“键”和“值”通过符号“:”串接形成的一个字符串形式的数据表达式。
注:其中“键”是键值对的标识符,“值”是“键”对应的数值。
3 . 1 . 24
元数据 metadata
定义和描述其他数据的数据。
3 . 1 . 25
基础元数据 primarymetadata
原子性的元数据。
注:在保持元数据语义不变的前提下,基础元数据不能再分解为其他元数据。
3 . 1 . 26
复合元数据 aggregatemetadata
由一个或多个已定义的元数据,按一定的生成规则形成的元数据。
GB/T 38 1 13—2019
3 . 1 . 27
父/子元数据 parent/childmetadata
由若干已定义的元数据生成新的元数据时,新生成的元数据为已定义元数据的父元数据,已定义的元数据为新生成的元数据的子元数据。
3 . 1 . 28
数值结构 valuestructure
用于描述物联剖面或元数据的数值构成及其类型约束的数据结构。
3 . 2 缩略语
下列缩略语适用于本文件。
DSL:数据规约语言(Data Specification Language)
ID:标识符 (Identifier)
UML:统一建模语言(Uniform Modeling Language)
URI:统一资源标识符(Uniform Resource Identifiers)
4 约定
4 . 1 文档约定
表达形式方面遵循如下约定:
a) 类名。 类名称以大写字母开头,字体加粗;类名称在文档第一次出现时,类中文名称放在英文名称之后并用括号“()”括起。
b ) 属性名。 属性名以用小写字母开头,字体为斜体;属性名称在文档第一次出现时,类中文名称放在英文名称之后并用符合“:”隔开。
c) 类或属性的名称若由多个单词组成,则在单词之间使用连字符“-”串接,连字符后面的单词以大写字母开头,如“product-Info”。
d) 键值对:键值对以“″键″:″值″”形式表示,若值部分为复合表达式,则值部分用符号对“{}”括起。
4 . 2 UML建模约定
物联模型部分采用 UML语言表达,并遵循如下约定:
a) 标识符属性。 模型中类的标识符属性统一用 id作为其英文名称。
b ) 关联关系。 本标准的模型中类与类之间主要有两种关联关系:组合关系、聚合关系。 组合关系表示拥有者类包含了被组合的类的整体;聚合关系表示拥有者类包含被聚合的类的标识符属性 id。
c) 基数。 类之间的关联基数使用“下限..上限”的表示方式。 在上限为无限时,使用“* ”表示;若基数为“0 . . * ”,则可简写为“* ”;若基数中的下限与上限相同,则可简写为一个数字,如基数为“1 . . 1”,则可简写为“1”。
4 . 3 形式化表达
物联模型、物联剖面、元数据、访问接口及其具体的数据交换等,均采用 DSL语言来表达。 DSL 的形式化定义见附录 A。
GB/T 38 1 13—2019
5 物联框架
5 . 1 概述
本标准定义了分析仪器物联的三层架构:实体仪器层、映射层和虚拟仪器层,如图 1 所示。
实体仪器层的物联对象为各类具有特定数据通信接口的实体仪器。
映射层的物联对象为各类映射器,目的是建立实体仪器与虚拟仪器之间的动态映射,实现两者之间的数据绑定。
虚拟仪器层的物联对象主要为各物联标准件,主要包括各类虚拟仪器和注册中心。 虚拟仪器是实体仪器的一个在线网络代理,对实体仪器的操控和共享通过对虚拟仪器的标准化访问来实现;仪器注册中心提供分析仪器的网络发布、发现服务。
图 1 分析仪器物联总体框架
物联模型定义了分析仪器物联相关信息的数据结构和语义。 其中:仪器模型描述虚拟仪器中的可共享数据;注册中心模型描述分析仪器网上发布、发现时所需的信息;访问接口模型描述虚拟仪器的访问接口;元数据模型描述分析仪器物联所用的元数据。 本标准采用 UML 给出了物联默认模型的定义。
扩展机制定义从已有物联模型生成新模型时应遵循的约束。 基于物联默认模型,可扩展得到各类分析仪器所需的特定物联模型。
物联剖面规约了物联标准件的对外数据交换。 访问接口剖面规约了接口交互的数据帧结构,仪器剖面/注册中心剖面规约了数据帧内的数据内容。 物联标准件均提供由物联默认剖面规约的默认访问接 口,通过默认访问接口可获取其特定的物联信息,从而实现对其个性化的访问。
本标准定义的 DSL语言为物联模型/剖面、元数据、访问接口和交互数据帧提供了统一的形式化表达方法。
本标准通过上述的架构、模型、扩展机制和形式化方法,为各类分析仪器物联提供了一个通用的框架。
GB/T 38 1 13—2019
5 . 2 实体仪器层
实体仪器层的物联对象为各类实体仪器。
对实体仪器的数据通信接口不作规定。
5 . 3 映射层
映射层中的映射器负责实体仪器与其虚拟仪器的数据绑定,绑定的数据由虚拟仪器的仪器剖面来规约。 映射层可支持实体仪器与虚拟仪器之间的多对多映射关系。
映射器应实现以下功能:
a) 与实体仪器的交互。 获取或设置实体仪器的可共享信息。
b ) 与虚拟仪器的交互。 将实体仪器的共享信息更新到虚拟仪器中;获取虚拟仪器对实体仪器的可设置信息;可实现对虚拟仪器的管控,如:虚拟仪器的创建、发布、开通/关闭、注销等。
c) 对上述交互数据进行必要的转换处理。 保证实体仪器和虚拟仪器之间数据的语义一致性、同步的实时性。
对映射器的数据接口、交互方式和具体实现不作规定。
5 . 4 虚拟仪器层
5 . 4 . 1 虚拟仪器
虚拟仪器是实体仪器在网络中的一个在线代理,通过标准访问接口实现对外数据共享,共享数据由仪器模型的主剖面来规约,分为以下部分:
a) 实体仪器数据。 实体仪器的生命周期相关的数据,主要包括:实体仪器的基本信息、状态与事件、控制与协同、测量分析过程、运维管理等的实时和历史数据。 该部分主要通过映射器的数据绑定来产生。
b ) 数据共享方法的描述。 描述虚拟仪器对外如何进行数据共享的数据,主要包括:虚拟仪器可共享数据的范围、结构和语义的描述,如虚拟仪器的物联剖面、元数据等;虚拟仪器对外数据共享方式的描述,如虚拟仪器的访问接口、网络发布发现的数据;描述虚拟仪器提供数据共享时的服务质量的数据,如权限控制、共享模式、数据质量等。 该部分主要由虚拟仪器来管理。
c) 数据共享的过程记录。 对上述数据的交互过程的记录与统计数据。 该部分主要由虚拟仪器来产生和管理。
虚拟仪器的实现应满足以下要求:
a) 提供符合访问接口默认剖面(见附录 B)规定的访问接口 。
b ) 实现与相应实体仪器的数据绑定,绑定的数据内容符合仪器主剖面的规定;仪器主剖面应直接或间接扩展自仪器默认剖面,扩展机制符合 7 . 4 的规定。
c) 提供的访问接口应符合其访问接口剖面的规定;接口交互的数据结构语义、服务质量应符合其仪器剖面的规定。
d) 各物联剖面、访问接口、元数据之间具备一致性、完整性。
对虚拟仪器的内部架构、运行平台和具体实现不作规定。
5 . 4 . 2 注册中心
仪器注册中心是一个在仪器物联域内可公开访问的软件服务,为分析仪器物联提供信息发布、发现功能。 主要有以下组成部分:
a) 仪器黄页库。 管理存储各实体仪器、虚拟仪器的基本信息及其映射关系。
GB/T 38 1 13—2019
b ) 物联剖面库。 管理存储分析仪器物联的各类剖面。
c) 元数据库。 存储管理分析仪器物联所用的各类元数据。
注册中心的实现应满足以下要求:
a) 提供符合访问接口默认剖面(见附录 B)规定的访问接口 。
b ) 按注册中心默认剖面(见附录 B)规定的信息要求,实现分析仪器、物联剖面、物联元数据在注册中心的信息发布和发现。
c) 保证注册中心管理的各物联剖面、元数据的一致性和完整性。
本标准对仪器注册中心的内部架构、运行平台和具体实现不作规定。
6 物联过程
6 . 1 发布过程
仪器提供者根据实体仪器的物联要求,建立可供网络用户访问的虚拟仪器,称为仪器发布过程。 主要包括以下活动:
a) 数据共享的需求分析。 分析确定实体仪器对外共享的数据集合;分析确定数据共享的方式、范围和服务质量需求。
b ) 定义仪器的物联模型/剖面。 根据 a) 中的需求分析,定义仪器特定的物联模型/主剖面;面向不同共享需求,定义相应的特定物联剖面;验证各物联剖面的有效性、一致性,及与默认剖面的扩展一致性;分析确定网络访问的角色权限及其他服务质量的指标;定义访问接 口 的具体实例。
c) 建立映射器。 根据仪器的主剖面和服务质量,部署仪器映射器;建立仪器映射器与实体仪器的数据交互,建立仪器映射器与网络的连接。
d) 创建虚拟仪器。 确定所用的仪器软件服务;根据仪器物联剖面创建虚拟仪器;建立映射器与虚拟仪器的连接,实现实体仪器与虚拟仪器的数据绑定。
e) 根据数据共享目的,将虚拟仪器发布到注册中心。
可根据实体仪器共享的实际情况,对上述活动进行相应的剪裁。
6 . 2 访问过程
网络用户根据所需访问的实体仪器,发现其相应的虚拟仪器并进行数据交互,称为仪器访问过程。主要包括以下活动:
a) 获取实体仪器相应的虚拟仪器信息。 可通过注册中心查找发现实体仪器相应的虚拟仪器。
b ) 获取虚拟仪器的访问信息。 可通过物联默认访问接口,获取当前虚拟仪器的特定访问接口 。
c) 访问所需的实体仪器。 通过当前虚拟仪器的访问接口,实现对实体仪器的操控和共享。
7 物联模型
7 . 1 基本约定
本标准采用 UML 对物联模型中的各类信息模型进行建模。 每个特定的物联模型应符合以下约定:
a) 采用 UML 中的组合、聚合和继承关系来建模模型中类之间的关系;
b ) 任何特定的物联模型须直接或间接扩展自同类型的物联默认模型,扩展机制符合 7 . 4 的规定;
c) 模型中的类不能存在组合关系的回路;
GB/T 38 1 13—2019
注:组合关系的回路。 举例说明:某模型中的三个类:类 A、类 B、类 C,类 A组合了类 B,类 B组合了类 C,若类 C组合了类 A,则在同一个模型中形成了组合关系的回路。
d) 一个特定的物联信息模型有且只有一个主类;
e) 模型中每个被聚合的类应包含 id属性;
f) 模型中类的属性数据类型应为元数据模型已定义的实例;
g) 模型中的每个类均可包含 Description类,关联基数为“0 . . 1”,用于对该类提供文字型说明或其他约束。
为便于阅读,在物联默认模型的 UML 图中,类属性的数据类型采用附录 C 中元数据的英文名称来表示。
7 . 2 物联默认模型
7 . 2 . 1 仪器默认模型
仪器默认模型如图 2 所示,模型的主类为 Analyzer(仪器)类,由以下子类组成:
a) classification(分类描述)类,用于描述实体仪器的分类和功能;
b) structure(组成结构)类,用于描述实体仪器的组成结构、部件及其之间的关系;
c) Analysis-process(分析过程)类,用于描述使用分析仪器进行测量分析的具体过程;
d) Related-object(相关对象)类,用于描述分析仪器的相关对象;
e) Running(运行信息)类,用于描述虚拟仪器的运行相关信息;
f) Access-Info(访问信息)类,用于描述外部访问者应如何访问虚拟仪器。
图 2 仪器默认模型的主要组成
7.2. 1 . 1 Analyzer类
Analyzer类描述虚拟仪器的基本信息,有如下属性:
a) id:仪器 ID,属性值为当前虚拟仪器的唯一标识符;
b ) name:仪器名称,属性值为当前虚拟仪器的名称;
c) state:仪器状态,属性值为当前虚拟仪器的实时状态;
d) registry:注册点,属性值为当前虚拟仪器的注册中心服务入口 。
GB/T 38 1 13—2019
7 .2 . 1 .2 classification类
一个 classification类可包含多个 Terms-Group(术语组)类或 Descriptor(描述子)类。如图 3 所示。
图 3 仪器默认模型 classification类的组成
Terms-Group类描述某个分类维度的一组术语,其 name属性表示当前分类维度的名称。 一个Terms-Group类可包含多个 Descriptor类。
Descriptor类描述分析仪器相关的术语,其 name属性值为特定的描述术语值。
7 .2 . 1 .3 structure类
一个 structure类可包含多个 component(仪器部件)类,每个部件又可以分为若干个子部件。 如图 4 所示。
图 4 仪器默认模型 structure类的组成
component类定义了以下属性:
a) id:部件 ID,属性值为当前仪器部件的唯一标识符;
b ) name:部件名称,属性值为当前部件的名称;
c) assemble:组合规则,属性值为一个组合表达式,用于描述当前部件的若干个子部件之间的关系,若当前部件没有子部件,则属性值为 null。 组合规则表达式以对象标识符为基本元素,规约各子对象如何按规定的组合方式(顺序、选择、重复、同步等方式)组合为当前对象。
一个 component类可包含多个 context-component(部件周境)类,用于描述该仪器部件工作时的周境(如环境温湿度、供电要求等)。
7.2. 1 .4 Analysis-process类
一个 Analyzer类可包含多个 Analysis-process类,表示一台实体仪器可以进行多次的测量分析,每次测量分析的过程信息由 Analysis-process类规约。
GB/T 38 1 13—2019
一个 Analysis-process类可包含:一个 object-Analyzed(被分析对象)类,用于描述当前分析过程的被分析对象,即被检测物品;多个 Analysis-Result(分析结果)类,用于描述当前分析过程的分析结果;
一个Data-Realtime(实时数据流)类,用于描述当前分析过程产生的实时数据;多个 context-process(分析周境)类,用于描述当前分析过程的周境(如温湿度、大气压等);多个 Measure-Activity(测量活动)类 ,用于描述当前分析过程中的各个具体测量操作活动。 如图 5 所示。
图 5 仪器默认模型 Analysis-process类的组成
Analysis-process类包含以下属性:
a) id:分析过程 ID,属性值为当前分析过程的唯一标识符;
b ) name:分析过程的名称,属性值为当前分析过程的名称;
c) start-Time:开始时间,属性值为当前分析过程的开始时间;
d) end-Time:结束时间,属性值为当前分析过程的结束时间;
e) assemble:组合规则,属性值为一个组合表达式,用于描述当前分析过程的若干个具体测量活动之间的关系。
object-Analyzed类包括以下属性:
a) name:名称,属性值为被分析对象的名称;
b) object-Type:分析品类型,属性值为被分析对象的类型。 被分析对象有两种类型:一般物品和标准样品。
Analysis-Result类包括以下属性:
a) time:时间,属性值为当前分析结果的产生时间;
b ) result:分析结果,属性值为当前分析过程的分析结果。
GB/T 38 1 13—2019
Material(物品)类用于规约分析过程的输入或分析过程的分析结果( 如:物质成分、化学结构或物理特性等数据)。object-Analyzed类可包含一个 Material类,用于描述当前被分析的样品的相关数据; Analysis-Result类可包含多个 Material类,用于描述当前分析结果的数据。
Data-Realtime类规约当前分析过程产生的实时数据。 包括以下属性:
a) curData:当前数据,属性值为当前分析过程产生的最新数据;
b ) data-series:数据序列,属性值为当前分析过程自开始到当前时间产生的测量数据序列。
一个 Measure-Activity类可包含:多个 Input(输入)类,用于表示当前测量活动的输入;多个 output
(输出)类,用于表示当前测量活动的输出;多个 context-Activity(活动周境)类,用于描述当前测量活动的周境。 一个测量活动中可与多个仪器部件(component类)或外部相关对象(Related-object类)发生关联。 一个测量活动还可分解为若干个子测量活动。
Measure-Activity类包含以下属性:
a) id:活动 ID,属性值为当前测量活动的唯一标识符;
b ) name:活动名称,属性值为当前测量活动的名称;
c) start-Time:开始时间,属性值为当前测量活动的开始时间;
d) end-Time:结束时间,属性值为当前测量活动的结束时间;
e) task:任务,属性值描述当前测量活动的任务或目的;
f) assemble:组合规则,属性值为一个组合表达式,用于描述当前测量活动的若干个子测量活动之间的关系。
7.2. 1 .5 Related-object类
Related-object类包含以下属性:
a) id:相关对象的 ID,属性值为外部相关对象的唯一标识符;
b ) name:对象名称,属性值为外部对象的名称;
c) relationship:关系,属性值描述当前分析仪器与外部对象的关系;
d) reference:参考,属性值为外部对象的资源标识符(URI),该资源一般作为外部对象相关的说明性资料。
7.2. 1 .6 Running类
一个 Running类可包含多个 Event(事件)类,用于描述当前实体仪器/虚拟仪器运行中发生的各类事件。
Event类包含以下属性:
a) code:事件编码,属性值为发生的事件的具体编码值;
b ) time:时间,属性值为事件发生的时间;
c) type:事件类型,属性值为发生的事件的类型,如:一般事件、报警事件、紧急处理事件等。
7 .2 . 1 .7 Access-Info类
一个 Access-Info类可包含:多个 self-profile(自身剖面)类,用于描述当前虚拟仪器可供外部访问的仪器剖面;多个 Access-Interface(访问接口)类,用于描述当前虚拟仪器对外提供的访问接 口;多个Access-Qos(数据访问的服务质量)类,用于描述与外部交互时的服务质量。 如图 6 所示。
GB/T 38 1 13—2019
图 6 仪器默认模型 Access-Info类的组成
self-profile类包含以下属性:
a) id:剖面 ID,属性值为仪器剖面的标识符;
b ) name:名称,属性值为当前仪器剖面的名称;
c) profile:仪器剖面,属性值为当前仪器剖面的 URI。
Access-Interface类包含以下属性:
a) id:访问接口 ID,属性值为访问接口的标识符;
b ) interface:访问接口,属性值为访问接口的具体形式化表达式的 URI ;
c) profile:访问接口剖面,属性值为访问接口的剖面的 URI。
一个 Access-Interface类可聚合多个 self-profile类,表示一个访问接口可访问多个仪器剖面规约的数据集。
一个 Access-Qos类包含:多个 Item-Qos(服务质量项)类,用于描述服务质量中的某个特定的服务质量项;多个 Right-Qos(服务质量权限)类,用于描述当前服务质量所要求的权限信息。
Access-Qos类包含以下属性:
a) id:服务质量 ID,属性值为当前服务质量的唯一标识符;
b ) name:名称,属性值为当前服务质量的名称。
Item-Qos类包含以下属性:
a) id:服务质量项 ID,属性值为服务质量项的唯一标识符;
b ) name:名称,属性值为服务质量项的名称;
c) ℃alue:名称,属性值为服务质量项的具体取值。
Right-Qos类包含以下属性:
a) id:权限 ID,属性值为权限的唯一标识符;
b ) name:名称,属性值为权限的名称;
c) ℃alue:名称,属性值为权限的具体取值。
7 . 2 . 2 注册中心默认模型
注册中心默认模型如图 7 所示,由四个子模型组成:注册中心入口模型,模型主类为 Registry(注册中心)类;仪器黄页库模型,模型主类为 Lib-yellow-pages(黄页库)类;物联剖面库模型,主类为 Lib- profile(剖面库)类;元数据库模型,主类为 Lib-Metadata(元数据库)类 。
Registry类由 Lib-yellow-pages类、Lib-profile类和 Lib-Metadata类聚合而成,以上四个类均继承
GB/T 38 1 13—2019
自 services-Entry(服务入口)类。
图 7 注册中心默认模型的主要组成
services-Entry类描述一个软件服务入口的基本信息,有以下属性:
a) id:服务 ID,属性值为软件服务的唯一标识符;
b ) name:名称,属性值为软件服务的名称;
c) address:服务地址,属性值为软件服务的访问地址。
Registry类继承了 services-Entry类的所有元素。一个 services-Entry类可包含一个 Access-Info类
(见图 6),用于描述外部访问者应如何与当前软件服务进行数据交互。
Registry类包含以下属性:
a) parent-Node:父节点,属性值为上级注册中心节点的 URI ;
b) child-Node:子节点,属性值为下级注册中心节点的 URI。
7 . 2 . 2 . 1 仪器黄页库默认剖面
Lib-yellow-pages类继承了 services-Entry类的所有元素。一个 Lib-yellow-pages类可包含:多个Entity-Analyzer(实体仪器)类,用于描述实体仪器的基本信息。Entity-Analyzer类可包含多个 virtual- Analyzer(虚拟仪器)类,用于描述当前实体仪器对应的虚拟仪器的基本信息。 如图 8 所示。
图 8 仪器黄页默认模型
Entity-Analyzer类包含以下属性:
a) id:实体仪器 ID,属性值为实体仪器的标识符;
GB/T 38 1 13—2019
b ) name:名称,属性值为实体仪器的名称;
c) product-Info:产品信息,属性值为实体仪器的产品相关信息;
d) site:安装地点,属性值为实体仪器的安装地点;
e) o∞ner:所有者,属性值为实体仪器的所有者或提供者信息。
virtual-Analyzer类包含以下属性:
a) id:虚拟仪器 ID,属性值为虚拟仪器的标识符;
b ) id-profile:物联剖面,属性值为虚拟仪器的物联剖面的标识符;
c) name:虚拟仪器名称,属性值为虚拟仪器的名称;
d) ser℃er-VI:运行服务器,属性值为虚拟仪器的软件服务 URI ;
e) mapper:映射器,属性值为虚拟仪器的映射器的 URI ;
f) time-created:创建时间,属性值为虚拟仪器的创建时间。
7 . 2 . 2 . 2 物联剖面库默认剖面
Lib-profile类继承了 services-Entry类的所有元素。一个 Lib-profile类还可包含:多个 profile(剖
面)类,用于描述分析仪器物联剖面的基本信息。 如图 9 所示。
图 9 剖面库默认模型
profile类包含以下属性:
a) id:物联剖面 ID,属性值为特定物联剖面的标识符;
b ) name:名称,属性值为当前物联剖面的名称;
c) type:剖面类型,属性值为当前物联剖面的具体类型;
d) profile:物联剖面,属性值为当前物联剖面的具体存放点的 URI ;
e) profile-Based:父剖面,属性值为当前物联剖面的父剖面的标识符;
f) lib-Metadata:元数据库,属性值为当前物联剖面使用的元数据库的 URI ;
g) publisher:发布者,属性值为当前物联剖面的发布者信息;
h) time-publish:发布时间,属性值为当前物联剖面的发布时间。
7 . 2 . 2 . 3 元数据库默认剖面
Lib-Metadata类继承了 services-Entry类的所有元素。一个 Lib-Metadata类还可包含:多个 Meta- data(元数据)类,Metadata类具体阐述见 7.2.4。
7 . 2 . 3 访问接口默认模型
访问接口默认模型如图 10 所示,模型的主类为 Interface(访问接口)类,由以下子类组成:
a) Request(接口请求)类,用于描述访问接口交互中进行接口请求时的数据包;
GB/T 38 1 13—2019
b) Response(接口响应)类,用于描述访问接口交互中对接口请求的进行响应的数据包;
c) security(接口安全)类,用于描述接口交互时数据包加密相关的信息;
d) Frame-Header(帧头)类,用于描述接口交互数据包的先导符;
e) Frame-Tail(帧尾)类,用于描述接口交互数据包的尾部添加符。
7 .2 .3 . 1 Interface类
Interface类描述一个访问接口的基本信息,包含以下属性:
a) id-Interface:接 口 ID,属性值为访问接口的唯一标识符,用于对访问接口的信息管理;
b ) name:接口名称,属性值为访问接口的名称;
c) pro℃ider:服务提供者,属性值为一个通用资源标识符,描述当前访问接口的网络访问入口点(包括网络地址、服务端口号等);
d) timeout:超时阈值,属性值为该接口请求的超时阈值。 接口调用者根据该数值判断已发起的接口请求是否已超时。
图 10 访问接口默认模型
Frame-Header类包含以下属性:
a) si义e:大小,属性值为接口交互数据包的先导符的数据长度,单位为字节;
b ) header:头部,属性值为接口交互数据包的先导符数据块。 在接口数据交互时添加在接口请求/响应数据包的头部。
Frame-Tail类包含以下属性:
a) si义e:大小,属性值为接口交互数据包尾部添加符的数据长度,单位为字节;
b ) tail:头部,属性值为接口交互数据包尾部添加符数据块,在接口交互时添加在接口请求/响应数据包的尾部。
security类包含以下属性:
a) key:秘钥,属性值为一个秘钥字符串,用于接口交互中的数据加密/解密;
b ) algorithm:加/解密算法,属性值为一个字符串,描述接口交互时数据加密/解密的算法。
GB/T 38 1 13—2019
7.2.3.2 Request类
Request类包含以下属性:
a) object:访问对象,属性值表示接口访问的物联标准件的相关信息,取值主要如下:
—“P”为剖面(Profile),表示接口访问的是该物联标准件的剖面;
—“I”为实例集(Instances),表示接口访问的是该物联标准件所管理的若干实例;
— 某特定对象的唯一标识符,表示接口访问的是该物联标准件管理的特定对象。
根据 object的属性取值,可确定访问对象及其剖面,该访问对象的剖面规定了访问接口模型中
DSL表达式类型的各个属性(Request类的 filters、setting、required属性,以及 Response类 output属
性)的基本元素。
b) filters:过滤条件,属性值为一个 DSL 表达式,用于在访问对象中过滤出符合条件的具体对象。
c) setting:设置,属性值为一个 DSL 表达式。 在接口的操控类型(operation类的 type属性值)为“C”(新增)或“U”(修改)时,该属性值规约待新增或修改的各数据项及相应的数值;接 口 的操控类型为“R”“D”“A”时,该属性值表达式为 null。
d) required:请求项,属性值为一个以键值对中的“键 ”为基本元素的 DSL 表达式,描述当前接 口响应需返回的具体数值项。 当不需要返回具体数值时,该属性值表达式为 null。
一个 Request类应包含一个 operation(信息操控)类,用于描述本次接口请求的信息操控方式。 operation类包含以下属性:
a) type:操控类型,属性值为当前接口请求的操控类型,本标准定义了 5 种操控类型:
—“C”为增加(Create),增加新的信息;
—“R”为读取(Read),读取相关信息;
—“U”为修改(Update), 当接口调用者为仪器映射器时,表示对仪器数据的修改;当调用者为一般网络用户时,表示对仪器的控制或设置操作;
—“D”为删除(Delete),删除相关信息;
—“A”为验证(Authentication),用以表示权限验证的操作。
b ) authentication:验证码,属性值为一个字符串,用于对接口访问的数据的操控权限进行验证。
7.2.3.3 Response类
Response类包含以下属性:
a) flag:响应标志,属性值为当前接口调用执行结果的描述;
b) output:输出,属性值为一个 DSL数值表达式,描述当前接口响应的具体输出结果。
Response类可包含一个 piggyback(信息捎带)类,用于在接口响应返回信息中捎带紧急信息( 如紧
急通知、异常事件等)。piggyback类有以下属性:
a) flag:捎带标志,属性值为捎带数据的简单描述;
b) info:捎带信息,属性值是一个字符串,描述当前接口响应所捎带的具体信息。
7 . 2 . 4 元数据默认模型
元数据默认模型如图 11 所示,模型主类为 Metadata类,由以下子类组成:
a) value-constraints(数值约束)类,用于描述元数据的数值约束;
b) Generate-constraints(生成约束)类,用于描述多个子元数据生成一个复合元数据时的约束;
c) Aggregate-constraints(聚合约束)类,用于描述复合元数据的整体性约束。
GB/T 38 1 13—2019
图 1 1 仪器元数据默认模型
元数据是元数据模型的实例。 附录 C 中给出了本标准中所用的元数据的定义。
数值是元数据的实例。 元数据的数值结构相当于编程语言中的数据结构,规定了数值的数据组成结构和类型。
7 .2 .4 . 1 Metadata类
Metadata类描述一个元数据的基本信息,包含以下属性:
a) id:元数据 ID,属性值为该元数据的唯一标识符。
b ) id-Extended:被扩展的元数据 ID,属性值为被扩展的元数据的标识符。
c) name-Eng:英文名称,属性值为元数据的英文名称。
d) name-chn:元数据中文名,属性值为元数据的中文名称。
e) ℃alue-Type:数值类型,属性值为元数据的数值类型。 本标准定义了以下基本数值类型:“S”表示字符型,“N”表示为数字型,“T”表示时间型,“B”表示布尔型,“U”表示资源型,“E”表示 枚举型,“G”表示复合型。
f) conformance:符合性,属性值为 true或 false, true 表示该元数据已得到本标准有关管理机构的认可,false表示未得到认可。
7 .2 .4 .2 value-constraints类
一个 Metadata类最多包含一个 value-constraints类,用于规约基础元数据的数值约束。value- constraints类包括以下属性:
a) si≈e:长度,该属性值描述元数据的数值的长度,属性值中的下限表示字节长度的最小值,上限表示字节长度的最大值。 若为 null 表示长度不限。
b ) unit:单位,该属性值描述当前元数据的数值的计量单位。 若元数据类型非数字型,则值为null 。
c) default:缺省值,该属性值描述当前元数据的数值的缺省值。 若 maximum 属性值不为空,则缺省值须在maximum 属性值的范围内。
b ) maximum:最值约束,该属性值描述当前元数据的数值的最小值/最大值。 若为 null 或 “* ”,表示无最值限制。
当 Metadata类的实例为枚 举 型 的 元 数 据 时,value-constraints类 应 至 少 包 含 一 个 Enumerated-
GB/T 38 1 13—2019
value(枚举值)类,每个 Enumerated-value类的实例描述了枚举型元数据的一个枚举值。Enumerated- value类包括以下属性:
a) seq:枚举序号,该属性值描述枚举型的数值编号;
b ) ℃alue:枚举值,该属性值为与枚举序号对应的具体数值。
7 .2 .4 .3 Generate-constrains类
一个 Metadata类嵌套多个 Metadata子类时,每个被嵌套的子类应包含一个 Generate-constraints类。Generate-constraints类包括以下属性:
a) group:分组号,该属性值为子元数据的分组号。 分组号相同的子元数据为一组,组内的子元数据按 generate-styles属性值规定的生成方式生成一个新元数据。
b ) sequence:序号,该属性值为子元数据在分组内的序号,表示当前子元数据在分组内的前后关系。
c) generate-style:组合方式,该属性值描述子元数据组装为一个新元数据时的组合方式。 本标准定义了以下组合方式:
—“Sequential”顺序组合方式,表示将当前分组中 generate-style属性值为“Sequential”的所有子元数据组成一个有序向量的复合元数据,新元数据的数值结构是该组内所有子元数据的数值结构序列,顺序按该组内 sequence属性值的升序排列;
—“Selective”选择组合方式,表示当前分组中 generate-style属性值为“Selective”的子元数据任选其一作为新元数据中的一个成员。 新元数据的数值空间是所有该组中的子元数据的数值空间的并集;
—“Intersective”交集组合方式,表示当前分组中 generate-style属性值为“Intersective”的所有子元数据形成一个新元数据,新元数据的数值空间是所有该组中的子元数据的数值空间的交集;
—“Concatenative”串接组合方式,表示当前分组中 generate-style属性值为“Concatenative”的子元数据生成一个新元数据,新元数据的数值是该组内所有子元数据的数值的串接,顺序按其sequence属性值的升序排列。
d) cardinality:基数,该属性值为子元数据在生成新元数据时的基数关系,表示当前子元数据在新元数据中 自身的复制次数。
7.2.4.4 Aggregate-constraints类
Aggregate-constraints类包含以下属性:
a) unique-key:唯一键,该属性值描述元数据的实例的数值唯一键;
b ) order:排序,该属性值描述元数据的实例的排序信息。
7 . 3 物联剖面
本标准采用 DSL语言将物联模型形式化表达为相应的物联剖面。
将特定物联模型形式化表达为相应主剖面的方法如下:
a) 将物联模型中的每个类表示为一个键值对表达式,类名作为键值对中的“键”,“值”为由类中各属性的键值对组成的表达式;将类的每个属性表示为一个键值对,属性名作为键值对中的“键”,“值”为该属性数据类型对应的元数据标识符;
注:物联模型的 UML 图中类属性的数据类型,在剖面中以该元数据的标识符来代替。 如:仪器默认模型 An-
alyzer类中的 name属性数据类型为 String,在剖面中的相应键值对应为″name″:″M00000″。
b ) 按照类之间的关系,将物联模型的各个类形成的键值对表达式进行组装;
GB/T 38 1 13—2019
1) 组合关系的处理。 对被组合的类的键值对表达式添加相应基数,一并添加到组合类的键值对的“值”表达式中,形成以组合类的类名为“键”的键值对表达式。
2) 聚合关系的处理。 将被聚合的类的标识符属性作为一个键值对:该键值对的“键”采用“被聚合类的类名″+″.″+″被聚合的类的标识符属性名”的形式,“值 ”为被聚合的类的标识符属性的数据类型相应的元数据标识符。 将以上键值对添加相应的基数,一并添加到聚合类的键值对的“值”表达式中。 如:仪器默认模型中的 component类被聚合到Measure-AC- tivity类,应在 Measure-ACtivity类相应的键值对的“值”表达式中添加″Component.id″:[″ M00100″]( *)的表达式。
c) 按照 a)、b)逐级组装,直至形成以模型主类的类名为“键 ”的键值对表达式。
附录 B给出了物联默认剖面的具体表达。
7 . 4 扩展机制
7 . 4 . 1 基本约定
本标准规定物联模型的扩展遵循与 UML相一致的扩展机制,扩展是在已有物联模型的基础上增加新的约束限制和信息,从而得到一个新的物联模型。 扩展关系的含义是:如果 B是 A 的扩展,则对 A及其实例的所有合法操作都可以适用于 B及其实例,反之则不然。 扩展关系具有以下性质:
a) 扩展关系具有自反性,即:每个模型对象都是自身的扩展;
b ) 扩展关系具有传递性,即:若 C 为 B 的扩展,B 为 A 的扩展,则 C也是 A 的扩展。
基于物联默认模型和扩展机制,可以逐级建立各类分析仪器物联模型,直至满足特定实体仪器物联的信息建模需要。 以仪器模型为例,分析抽取色谱仪器的共性特征,基于默认模型扩展形成色谱仪器的信息模型;分析抽取气相色谱仪器的共性特征,基于色谱仪器的信息模型扩展形成气相色谱仪器的信息模型;基于气相色谱仪器的信息模型,仪器提供者可根据自己的需要,扩展形成某特定气相色谱仪器产品的信息模型。 如图 12 所示。
图 12 仪器模型扩展体系示意图
一个特定的物联模型必须直接或间接扩展自与其类型相同的物联默认模型。
7 . 4 . 2 信息模型的扩展机制
信息模型的扩展必须遵循以下原则:
a) 扩展应是同类型模型的扩展。 如,仪器模型应扩展自仪器默认模型或其他已有的仪器模型。
b ) 扩展应引入一些更为严格的语义和约束,但不能减少被扩展的模型中所规定的语义及约束。
信息模型扩展方法主要如下:
a) 在已有信息模型中增加新的类,但已有的类不能减少。 扩展得到的新模型中类与类之间不能
GB/T 38 1 13—2019
形成组合关系的回路;新增的类不能成为新模型的主类;
b ) 改变已有信息模型中类之间的关联关系:
1) 改变关联基数。 新模型中类的关联基数应在已有模型相应类的关联基数范围内。
2) 增加关联关系。 新模型中类与类之间不能形成组合关系的回路。
c) 在已有类中增加类的属性,但类的已有属性及其相关的约束不能减少。
d) 改变类属性的元数据。 改变后的新元数据必须是改变之前的元数据的扩展。
7 . 4 . 3 主剖面的扩展机制
主剖面的扩展方法主要如下:
a) 在主剖面的某个键值对的“值”部分添加新的键值对表达式。
b ) 改变主剖面中某个键值对的基数。 改变后的基数须在原有的基数范围内。
c) 改变主剖面中某个键值对的“值”。改变后的“值”必须为已定义的元数据标识符,且改变后的新元数据必须是改变之前的元数据的扩展。
7 . 4 . 4 元数据扩展关系的判定
元数据扩展在其数值关系方面的含义是:若元数据 B 为 A 的扩展,则可以按照两者数值结构之间的映射关系,从 B 的任意实例数据中抽取数据形成 A 的实例数据。
元数据扩展关系的判定准则:
a) 所有元数据均为字符型元数据 String 的扩展;
b ) A 和 B为基础元数据,若 B 为 A 的扩展,则 A 和 B 须为同一类型(value-Type 属性值相同),且其数值约束(value-constraints类的实例)满足以下条件:
1) B 的 size属性值在 A 的 size属性值范围内;
2) B 的 maximum 属性值在 A 的 maximum 属性值范围内;
3) B 的 unit属性值与 A 的 unit属性值相同;
4) 若 A 和 B为枚举类型,B 的枚举值集合为 A 的枚举值集合的子集。
c) 通过元数据的 id-Extended属性值和扩展关系的传递性来判定;
d) 根据元数据的数值结构表达式来判定。 若 A 和 B分别为两个元数据,其数值结构的表达式分别为 Adsl 和 Bdsl,对 Adsl 中任意一个键值对 kvpA, 在 Bdsl 中有且只有一个键值对 kvpB, key-DSL(kvpB) =key-DSL(kvpA) , kvpB 的基数在 kvpA 的基数范围内,且 value-DSL(kvpB)是 value-DSL(kvpA) 的扩展,则 B 为 A 的扩展。 相关形式化定义见附录 A。
8 数据交换
8 . 1 基本约定
各物联标准件按其物联剖面的规定与外部进行数据交换。 每个物联标准件的物联剖面应包括:
a) 访问接口剖面;
b ) 描述该标准件自身信息的剖面。 若该标准件为虚拟仪器,则该部分为仪器剖面;若该标准件为注册中心,则该部分为注册中心剖面;
c) 元数据剖面。
物联标准件对外数据交换应遵循以下约定:
a) 应支持按其相应的物联默认剖面的规定与外部进行数据交换;
b ) 数据交换涉及的元数据应符合该标准件的元数据剖面的规定;
c) 通过默认访问接口,应能获取物联标准件的以下信息:
GB/T 38 1 13—2019
1) 该标准件特定的物联剖面;
2) 该标准件对外的访问接口;
3) 该标准件对外数据交换所用的元数据。
8 . 2 数据交换过程
外部与物联标准件的数据交换过程主要如下:
a) 建立 网 络 连 接。 访 问 者 与 该 标 准 件 建 立 网 络 连 接,连 接 端 口 由 其 访 问 接 口 信 息 模 型 中Interface类的 pro℃ider属性值来确定。 如连接成功,进行 b);如连接不成功,则可再尝试建立连接,或反馈连接失败。
b ) 通过默认访问接口,获取该标准件特定的物联剖面、访问接口、元数据等信息。
c) 采用该标准件的访问接口进行数据交互。
d) 数据交换完成,关闭网络连接。
8 . 3 访问接口的调用
8 . 3 . 1 接口交互数据帧
访问接口模型/剖面规定了接口交互的数据帧结构。 默认访问接 口 的数据帧结构如图 13 所示,图中的虚线部分为可选部分,实线部分为必须存在的部分。
图 13 接口数据交互的帧结构
接口请求/响应数据包的生成:数据包为符合 DSL语言的表达式,表达式中”{}”内的键值对分别按访问接口模型中 Request类和 Response类(参见 7 . 2 . 3 的描述)在访问接口剖面中相应的键值表达式的顺序生成;若 security类的实例数值不为空,则按其要求对数据包进行加密。
接口交互的数据帧的生成:将访问接口模型中 Frame-Header类的实例数值作为先导符,添加在接口请求/响应的数据包的前面;将 Frame-Tail类的实例数值作为结束符,添加在该数据包的后面。
访问接口涉及对超长数据(如多媒体、二进制文件等)的访问时,在接口请求/接口响应的数据包中只交换该数据的 URI值,其二进制流的具体传输本标准不作限定。
8 . 3 . 2 接口的调用
访问接口的主要调用过程如下:
a) 调用者生成接口请求数据帧,并发送给物联标准件。
b ) 物联标准件接收接口请求数据帧,验证、解析正确后,生成并发送接口响应数据帧给调用者。如验证、解析错误,则将该数据帧丢弃。
GB/T 38 1 13—2019
c) 如调用者在发出接口请求数据帧后的特定时间(访问接口模型中 Interface类的 timeout属性值)内,正确接收到接口响应数据帧,则当前访问正常;若超时,则本次访问失败。
8 . 3 . 3 接口交互数据包的数值结构
8 . 3 . 3 . 1 接口请求数据包的数值结构
访问接口默认剖面规定的接口请求数据的数值结构如下:
″Request″:{
″object″:″M00150″,
″filters″:″M00154″,
″settings″:″M00155″,
″required″:″M00101″,
″Operation″:{
″type″:″M00156″,
″authentication″:″M00000″
}
} ;
8 . 3 . 3 . 2 接口响应数据包的数值结构
访问接口默认模型规定的接口响应数据的数值结构如下:
″Response″:{
″flag″:″M00157″,
″output″:″M00155″
″Piggyback″:{
″flag″:″M00158″,
″info″:″M00000″
}
} ;
GB/T 38 1 13—2019
附 录 A
(规范性附录)数据规约语言
A.1 概述
本附录定义数据规约语言(Data Specification Language,简称 DSL)的符号、语法和关键字。
DSL 的形式化表达采用字符串形式,字符集采用 GB 13000—2010 。
A.2 基本符号
letter_uppercase=″A″| ″B″| ″C″| ″D″| ″E″| ″F″| ″G″| ″H″| ″I″| ″J″| ″K″| ″L″| ″M″| ″N″| ″O″| ″P″| ″Q″|
″R″| ″S″| ″T″| ″U″| ″V″| ″W″| ″X″| ″Y″| ″Z″;
letter_lo∞ercase = ″a″| ″b″| ″c″| ″d″| ″e″| ″f″| ″g″| ″h″| ″i″| ″j″| ″k″| ″l″| ″m″| ″n″| ″o″| ″p″| ″q″|
″r″| ″s″| ″t″| ″u″| ″v″| ″w″| ″x″| ″y″| ″z″;
letter =letter_uppercase| letter_lowercase; //英文字母
digit =″0″| ″1″| ″2″| ″3″| ″4″| ″5″| ″6″| ″7″| ″8″| ″9″; //0-9 的数字
letter-digit-string=[letter|digit]( *);........................//由英文字母或 0-9 的数字形成的字
符串
identifier=letter-digit-string,[{″_″|″. ″|″-″},letter-digit-string]( *);//标识符
cardinality-string=″*″|[digit]( *)|{[ digit]( *),″..″,{″*″|[ digit]( *)}};//基数
A.3 DSL语法
DSL形式化语法中的特殊符号见表 A. 1 。
表 A.1 形式化语法中的特殊符号
GB/T 38 1 13—2019
本形式化语法以键值对为基本元素,一个键值对可视为一个对象,键值对中的“键”是对象的唯一标识符;键值对中的“值”表示了该对象的值,一个键值对的“值”既可以是一个单一的字符串,也可以是 一个由若干个键值对按 DSL语法组成的表达式;键值对中的“键 ”和“值 ”之间由符号″:″连接;每个键值对可以重复若干次,重复次数由其基数决定。 一个 DSL表达式可以用符号″{}″括起来,″{}″内的键值对由符号“,”分隔。
DSL表达式的语法定义如下:
dsl-formula =key-℃alue-pair| ℃alue-formula;
key-℃alue-pair =key-string,”:”, ℃alue-formula;
key-string = ”””, identifier,”””;
℃alue-formula =”{”,dsl-object,[”,”,dsl-object]( *),”}”;
dsl-object =key-℃alue-pair|℃alue-string|array-Kvp;
array-Kvp = ”[”,key-℃alue-pair,”](”,cardinality-string,”)”;
℃alue-string ={”””,string-text,”””} |
digital-string|
”this”|
”true”|
”false”|
”null”|
”empty”;
上述语法定义中,string-text是一个字符串,与 IETF RFC 8259 中 string 的定义相同;digital- string是由可计算的数学数值的字符串形式,与 IETF RFC 8259 中 number 的定义相同。
true(表示布尔值真),false(表示布尔值假),null(表示空值)均为表达式中的保留关键字。
this 也是 DSL 中的保留关键字,用于表示键值对的递归关系。 this 只出现在键值对的值部分,若一个 DSL表达式中出现了值为 this 的键值对,则说明该键值对被包含在一个键与其相同的更大的键值对中。 例如,定义一个家族谱系的元数据:
{″House-Master″:{ ″Name″: ″String″,″Spouse″: ″String″,
″Childs″:[{″House-Master″: this}]( *)
}}
empty表示一个空的表达式。 一个“值”为 empty 的键值对用于表达模型中的没有任何属性的类。
DSL表达式中将“{}”和“[]”括起来的部分视为若干个键值对的一个序列,而不是键值对的集合。这样有利于表达的简洁性,可省略表达式中每“{}”符号对内的尾部连续的 null 值,而不影响数值的解析;在数据交互时,在上下文明确的情况
相关推荐
- GB/T 27203-2016 合格评定 用于人员认证的人员能力词汇
- GB/T 18844-2002 滑动轴承 损坏和外观变化的术语、特征及原因
- GB/T 14365-2017 声学 机动车辆定置噪声声压级测量方法
- GB/T 20139.2-2017 电气绝缘系统 已确定等级的电气绝缘系统(EIS)组分调整的热评定 第2部分:成型绕组EIS
- GB∕T 40051-2021 废旧人造板回收利用规范
- GB/T 27040-2010 合格评定 合格评定机构和认可机构同行评审的通用要求
- GB/T 18429-2018 全封闭涡旋式制冷剂压缩机
- GB/T 15544.1-2013 三相交流系统短路电流计算 第1部分:电流计算
- GB/T 16938-2008 紧固件 螺栓、螺钉、螺柱和螺母 通用技术条件
- GB/T 37618-2019 渗氮钢

