龙腾刚 姚乙鹏
(西华大学 四川 成都 610039)
摘要:ACARS(Aircraft Communications Addressing and Reporting System)报文是民用航空这一特殊领域的产物,报文的构造方式以及报文中每个字段所代表的含义与自然语言差异显著,故现有的自然语言处理工具无法用于解析ACARS报文。但解析ACARS报文是进行航空大数据挖掘的基础,因此,本文提出了一种基于模式匹配的ACARS报文解析方式,其能够根据报文中的信息自动地完成报文的解析。
关键词:ACARS;报文解析;模式匹配
引言:
实现高效的ACARS报文解析[1]是做航空大数据挖掘的先决条件,本文将基于模式匹配[2,3]的方式设计一个用于解析ACARS报文的系统,根据ACARS报文的统计学结果对其实现分类解析。
1构建ACARS报文的解析模板库
1.1构建ACARS报文的公共字段解析模板
ARINC620[4]协议限定了ACARS报文的优先级/目的地址行、转发报文的地面站编号与报文转发时间行、标准信息标识符(Standard Message Identification,SMI)行、文本元素行、通信服务行以及自由文本的标签(label/sub-label)行的格式和顺序,因此在解析报文的这部分字段时可以共用同一套解析模板,如图1所示。
.jpg)
图1 ACARS报文的公共字段解析模板
1.2 构建IATA代号-飞机注册号-机型代号库
不同航空公司甚至同一航空公司的不同机型的ACARS报文的自由文本格式各异,因此,需要根据机型编写相应的解析模板,机型代号可以通过航空公司的IATA代号及其飞机注册号从相关的专业网站查询。每当要解析一条报文,均需要根据该报文的机型代号找到其对应的私有标记模板,因此将航空公司IATA代号、飞机注册号及其机型代号作为一条记录存储到机型代号数据库中。
1.3构建ACARS报文自由文本的私有解析模板库
ACARS报文的统计结果显示,同一个航空公司中同一机型的推出报OUT、起飞报OFF、着陆报ON、滑入报IN以及当前位置报POS都分别有着不同的格式,因此,需要以航空公司IATA代号、机型代号以及报文类型为基本单位来编写对应的解析模板。机型代号可以从机型代号数据库中查询,而报文的类型则由其SMI与label/sub-label共同决定,例如图2所示(其SMI为M27,label为POS)。
.jpg)
图2 私有私有标记模板示例
2 ACARS报文解析流程及其结果
1)用图1所示的公共字段解析模板解析出ACARS报文中公共字段的属性;2)提取出报文中的航空公司IATA代号与飞机注册号,再利用这两个信息从机型代号数据库中查询收发此条报文的机型代号;3)提取出报文的SMI和label/sub-label,再结合第2)步所得的IATA代号与机型代号从私有解析模板库中查询该报文的自由文本解析模板;4)用第3)步中所得的私有模板对报文自由文本各个字段的属性进行解析。
解析后的属性及其字段的对应关系如图3所示。
.jpg)
图3 解析后的ACARS报文属性及其对应的字段
3结论
本文根据ACARS报文的统计学特性确定了编写其解析模板的粒度,并基于模式匹配的方式实现了ACARS报文的解析系统及其工作流程,实验结果表明该解析系统能够完成ACARS报文的解析。
参考文献:
[1]李书明, 吕文礼, 黄燕晓. ACARS空地数据通信系统及报文解析[J]. 装备制造技术, 2014(02):54-57.
[2]曾杰,贲可荣,张献,徐永士.基于序列模式匹配的API误用缺陷检测[J].华中科技大学学报(自然科学版),2021,49(02):108-114+132.
[3]董世博,李训根,殷珍珍.一种改进的字符串多模式匹配算法[J].计算机工程与应用,2013,49(08):133-137.
[4]ARINC specification 620-6, Air/ground character-oriented protocol specification [S]. 2007, 11-39.