赵洪利,陈 飞,郭 庆
(中国民航大学航空工程学院,天津 300300)
基于S1000D 的适用性应用研究
赵洪利,陈 飞,郭 庆
(中国民航大学航空工程学院,天津 300300)
适用性机制是一种针对性地过滤信息的有效方法,正确利用S1000D所提供的适用性机制,能实现对适用性的自动处理,为终端客户只提供相关的正确信息。基于对S1000D适用性的研究,分析了建立ACT、PCT和CCT数据模块的方法,以民航客机为例,给出了编制各适用性信息数据模块XML文件示例,并分析了适用性信息声明和判断的逻辑规则。研究得出的适用性实施机制,对在技术文档编制中如何正确使用适用性有很好的指导作用。
S1000D;适用性;数据模块;信息过滤
对于装备的技术出版物如维护手册、排故手册、指导说明书等来说,由于装备的不断改进和使用条件等变化,这些技术文档的具体内容或其中的某些内容会具有针对性,如内容只针对某些型号、某些系列或针对某些条件等。因此,为了能有针性地提供技术信息,让终端用户看到与其装备相对应的正确信息,在S1000D里采用了适用性来解决这一问题。通过对数据模块或数据模块内的某些具体内容设置适用性,利用适用性判断机制能有针对性地过滤信息,把正确信息传达给终端用户[1]。S1000D提供了两种适用性表达方式,一种是能直接阅读到的适用性信息,即直接显示信息的适用范围,阅读人员根据适用性声明选取具体的信息内容,这种适用性无需计算机计算处理,因此可不定义适用性数据模块;第二种是需计算机计算来判断适用性,计算机通过对所设定的产品属性和条件的判断结果来过滤适用的信息,只有当判断结果为“真”时,才会选择相应的信息,此过程计算机自动处理,需要定义适用性数据模块[2-4]。本文研究的适用性实施是针对第二种情况。
对民用客机而言,飞机构型不同、所选装的发动机不同以及使用中的不断改装等都会造成技术资料的内容组成复杂,有针对性的内容较多,通过设定每个数据模块的适用性,如针对某构型、针对发动机选型等设置适用性就可满足不同客户对技术文档的需求,从而实现自动的、有针对性地向用户提供技术信息。
S1000D设置适用性的目标是实现让信息的发布系统能基于各数据模块中适用性声明来自动选择信息内容。为了控制适用性的声明,S1000D设计3个适用性数据模块,分别是适用性交叉引用表(ACT)、产品交叉引用表(PCT)和条件交叉引用表(CCT)[5]。ACT定义那些可能影响数据适用性的产品属性,如型号、生产系列号等;CCT定义影响适用性的条件,如技术条件、操作条件、环境条件等;PCT定义具有特定属性或满足具体条件的产品个体,即把在ACT中声明的属性或在CCT中声明的条件赋给个体产品。交叉引用的含义就是在这3类数据模块间进行相互引用,以ACT数据模块为中心在CCT和PCT数据模块的状态段部分要引用ACT数据模块,而在ACT数据模块的内容段部分可能会引用CCT和PCT数据模块。其他需要适用性过滤的数据模块以及出版物模块都必须在其状态段内引用ACT数据模块。
对民用飞机而言,ACT主要定义飞机生产时已具备、在全寿命周期内不发生变化的特性,如序列号、飞机尾号、生产商号、型号等。CCT定义的条件,如服务通告(SB)、民航飞机的双发延程飞行(ETOPS)管理规则等。在飞机服役阶段,其条件状态会发生变化,如SB改装等。PCT定义飞机个体,如某架民用客机型号为B737-700,生产线号为1198,序列号为33037,注册登记号为B-2681,批次号为YB561[6]。
若选飞机制造商为BOEING,型号为737-600,生产线号为 1198、1219、1227,序列号为 33037-33039,批次号为YB561-YB563,注册号为B-2681、B-2682、B-2684这些属性来定义ACT,则部分代码如下:
<content>
<applicCrossRefTable>
<productAttributeList>
<!--下段定义了飞机制造商为波音-->
<productAttribute id="m fg">
<name>Manufacturer</name>
<descr>The nameof themanufacturer</descr>
<enumeration applicPropertyValues="BOEING"/>
</productAttribute>
<!--下段定义了飞机型号-->
<productAttribute id="model"valueDataType="string"valuePattern="B737-700")>
<name>Model</name>
<descr>Modelof the aircraft</descr>
<enumerationapplicPropertyValues="B737-600"/>
</productAttribute>
<!--下段定义了该型号飞机生产线号-->
<productAttribute id="lineno"valueDataType="integer">
<name>Line number</name>
<displayName>LN</displayName>
<descr>The line number is a type of continuous production number</descr>
<enumeration applicPropertyValues="1198|1219|1227"/>
</productAttribute>
<!--下段定义了该型号飞机序列号-->
<productAttribute id="serialno"valueDataType="integer">
<name>Serialnumber</name>
<displayName>SN</displayName>
<descr>Production process determined the serial numbers</descr>
<enumeration applicPropertyValues="33037-33039"/>
</productAttribute>
</productAttributeList>
</applicCrossRefTable>
</content>
CCT用来定义具体的条件,首先定义条件的类别和枚举方式,然后再定义具体条件。下面以民机常用的SB为例说明CCT的声明如下:
<condTypeList>
<condType id="SB">
<name>SB</name>
<descr>Service Bulletin</descr>
<enumerationapplicPropertyValues="PRE|POST"/>
</condType>
</condTypeList>
<!--上面为定义条件为SB类型技术条件-->
<condList>
<cond condTypeRefid="SB"id="SB72-C902">
<name>SB72-C902</name>
<descr>Stage 2 turbine disc reduced cycle life</descr>
</cond>
<cond condTypeRefid="SB"id="SB72-D437">
<name>SB72-D437</name>
<descr>Introduction ofa revised engine frontmount</descr>
</cond>
</condList>
<!--上面定义了两条具体的SB-->
PCT是一个产品实例库,其定义将来要涉及所有产品实例,把相关属性和条件与具体产品关联起来。
定义一架波音公司的生产线号为1198、系列号为33037、型号B737-600的飞机,代码如下:
<product>
<assignapplicPropertyIdent="m fg"applicPropertyType="prodattr"applicPropertyValue="BOEING"/>
<assign applicPropertyIdent="model"applicPropertyType="prodattr"applicPropertyValue="B737-600"/>
<assign applicPropertyIdent="lineno"applicPropertyType="prodattr"applicPropertyValue="1198"/>
<assign applicPropertyIdent="serialno"applicPropertyType="prodattr"applicPropertyValue="33037"/>
</product>
适用性提供一种利用产品属性和条件判断数据模块或数据模块中部分内容适用范围的机制,从而确保技术信息与相应产品一致,使用户能得到正确的技术信息。适用性要在数据模块的标识和状态段<dmStatus>内声明,在数据模块的内容段内引用[7]。在信息编辑过程中会遇到两种适用性使用情况:一种是全局适用性,即针对整个数据模块;另一种是针对数据模块内某些内容的局部适用性。全局适用性通过<applic>元素声明,而局部适用性通过<referencedApplicGroup>声明。在适用性声明中,对适用性的判断是通过<assert>和<evaluate>来实现。<assert>对声明的属性和条件进行单次判断;当需要对声明的属性和条件进行多次判断时,则用<evaluate>元素并配合“and”和“or”逻辑符。不管是单次还是多次判断,只有当判断值为“真”时,计算机才认为内容是适用的。
适用性通常与产品的构型、使用条件等相关联,下面是全局性适用性声明:
<identAndStatusSection>
<dmstatus>
<applic>
<assert applicPropertyIdent="Model"applicPropertyType="prodattr"applicPropertyValues="B737-700"/>
</applic>
</dmstatus>
</identAndStatusSection>
上面这段代码是利用产品属性来判断适用性,说明该数据模块适用于B737-700飞机。当判断的属性或条件较多时,则利用<evaluate>和<assert>结合使用,进行适用性判断:
<applic>
<!--属性“andOr”取 and 为“且”,取 or为“或”-->
<evaluate andOr="and">
<assert applicPropertyIdent="Model"applicPropertyType="prodattr"applicPropertyValues="B737-700"/>
<assert applicPropertyIdent="Model"applicPropertyType="prodattr"applicPropertyValues="CFM56-7B"/>
<assertapplicPropertyIdent="SB72-C902"applicPropertyType="condition"applicPropertyValues="Psot"/>
</evaluate>
</applic>
<!--上面一段是三次判断-->
该段代码说明该数据模块只适用于型号为装有CFM56-7B发动机的B737-700,且发动机做过SB72-C902改装。
局部适用性用<referenceApplicGroup>声明,在数据模块内容段,在所针对的信息内容处通过引用“applicRefId”属性值来声明适用性:
<dmodule>
<identAndStatusSection>
<dmstatus>
<referencedApplicGroup>
<applic id="applic-001">
<assertapplicPropertyIdent="model"applicPropertyValues="B737-600"/>
</applic>
<applic id="applic-002">
<assertapplicPropertyIdent="model"applicPropertyValues="B737-700"/>
</applic>
</referencedApplicGroup>
</dmstatus>
</identAndStatusSection>
<content>
<para applicRefId="applic-001">Thisairplane has150 seats</para>
<para applicRefId="applic-002">Thisairplane has160 seats</para>
……
</content>
</dmodule>
在技术文档的编辑过程中,利用适用性数据模块(ACT、CCT和PCT)定义产品属性和条件,其他各数据模块通过在数据模块状态段中利用标签<applic-CrossRefTableRef>引用ACT实现对各适用性数据模块的引用。引用的方法是通过<dmRefIdent>的子元素<dmCode>编写ACT的数据模块编码(DMC)来完成引用。代码如下:
<applicCrossRefTableRef>
<dmRef>
<dmRefIdent>
<dmCodemodelIdentCode="B737"system Diff Code="A"systemCode="J00"subSystemCode="0"subSubSystemCode="0"assyCode="00"disassyCode="00"disassyCodeVariant="A"infoCode="00W"infoCodeVariant="A"itemLocationCode="D"/>
<issueInfo issueNumber="001"inWork="00"/>
</dmRefIdent>
</dmRef>
</applicCrossRefTableRef>
当数据模块声明适用性后,计算机就会基于适用性处理机制自动从数据库中提取相应的数据模块,对信息进行集成,生成客户化的适用于某一客户的技术文档[8]。计算机对适用性的处理过程是:基于<assert>的属性“applic PropertyIdent”的值,引用相应的 ACT或CCT。当“applic PropertyIdent”的属性值为“产品属性(prodattr)”时,则引用 ACT;当“applic PropertyIdent”的属性值为“条件(condition)”时,则引用 CCT。然后,计算机自动把<assert>所声明的“applic PropertyValues”与PCT或CCT中所设定的“applic PropertyValues”进行对比,进行真假判断。判断规则如下:
1)所声明的适用性必须是计算机可计算的形式,即计算机能根据声明给出“真”或“假”的判断。
2)具体产品实例一定要在PCT数据模块内。计算机通过把PCT数据模块中标签<assign>的属性“applic-PropertyIdent”值与适用性判断标签<assert>的属性“applic PropertyIdent”的值进行对比来确认产品实例。
3)当产品实例的值与<assert>声明的属性值相匹配或在<assert>声明值的范围内时,判断值为“真”;否则,判断值为“假”。
4)当<assert>无法判断所声明的属性或条件时,则按“真”结果处理。
5)当多次判断时,用逻辑计算符号“andOr”。逻辑符“and”的判断准则是,所有判断结果都是“真”,最后总结果才是“真”;逻辑符“or”的判断准则是,当其中一个判断结果为“真”时,则最后结果就是“真”,当所有判断都为“假”时,则最后判断结果为“假”。
图1是利用上述方法编辑的适用性数据模块(DM)的IETM借助某内容发布平台后,用户登入时根据适用性信息过滤的展示界面。
图1 某平台用户登录界面Fig.1 User login interface of a platform
在技术文档编辑过程中,设计适用性是一项复杂的工作,其难点在于如何让计算机根据适用性的声明来判断整个数据模块或数据模块内部分内容的适用性。本文结合民用飞机和发动机的特点给出了适用性应用样例,以期对民航技术出版物实现全面S1000D标准化具有一定的指导性意义。
[1]S1000D Working Group.International Specification for Technical Publications Usinga Common Source Database(Issue 4.1)[EB/OL].(2012-12-31)[2017-02-26].http://public.sloood.org/Pages/Home.aspx.
[2]MARYMCCARTHY.S1000D Issue4.1 Applicability[Z].S1000DUser forum,2015.
[3]GLEN HANDRAHAN IDSI.S1000D Applicability Introduction[Z].S1000DUser Forum,2012.
[4]JEROENVANROTTERDAM.S1000D Applicability Model[Z].S1000D User Forum,2012.
[5]MIKECOOK.Creating Appliicability Statements that Work for the CCT[Z].S1000DUser Forum,2015.
[6]JOAKIM LUNDQVIST.Create Applicability Business Rules in a Civil Aviation Project[Z].S1000DUser Forum,2013.
[7]陈 韶.适用性在IETM上的应用研究[J].航空维修与工程,2016(7):42-45.
[8]徐宗昌.装备IETM技术标准实施指南[M].北京:国防工业出版社,2012.
Study on applicability implementation based on S1000D
ZHAO Hongli,CHEN Fei,GUO Qing
(College of Aeronautical Engineering,CAUC,Tianjin 300300,China)
Applicability is an effective information filtering method,correctly using the applicability mechanism provided in S1000D,automatic processing of applicability can be achieved and the correct information can be delivered to the end user.Based on the study of S1000D applicability,the method of creating ACT,PCT and CCT is analyzed.Taking the civil aircraft as an example,the applicability data modules are written,and the rules and logic of applicability declarations and applicability test are analyzed.Studying result of applicability implementation mechanism can supply guiding reference for correct using of applicability in authoring technical documents.
S1000D;applicability;data module;information filtering
赵洪利(1964—),男,天津人,副教授,硕士,研究方向为发动机维修与维修管理.
TP305
A
1674-5590(2017)05-0052-04
2017-03-07;
2017-04-05
航空科学基金项目(20130267001)
?
孟 欣)