APP下载

基于语义网的机床故障诊断知识扩展方法

2020-04-08刘华一张自凯潘吉财

计算机集成制造系统 2020年3期
关键词:知识库实例本体

刘华一,鄢 萍+,周 强,辛 洋,张自凯,潘吉财

(1.重庆大学 机械传动国家重点实验室,重庆 400044;2.重庆机床(集团)有限责任公司,重庆 400055;3. 国机重型装备集团股份有限公司,四川 德阳 618000)

0 引言

机床作为工业母机,量大面广,广泛应用于工业生产中。据统计,中国目前的机床保有量为700多万台[1]。提高机床的故障诊断能力将显著提升机床的使用效率。其中基于知识的机床故障诊断专家系统的诊断能力与故障诊断知识库中知识量的丰富程度相关,知识库中知识量越丰富,故障诊断能力越强。因此,研究机床故障诊断知识的扩展方法,将极大提高知识的收集效率,对提升机床故障诊断的智能程度具有重要作用。

机床故障诊断知识的知识量大、动态性强,导致机床故障诊断知识收集的工作量大且难度高。产生这个问题的原因包括两方面:①不同机床间的工作环境和工况差异大,执行不同加工任务时会产生不同的故障;②随着大数据分析和深度学习等技术在故障诊断领域的应用,机床在运行过程中获取到的故障诊断知识将进一步增多。因此,解决知识收集的效率问题,研究如何高效地进行知识的动态扩展具有重要意义。

目前,在机床故障诊断知识库的知识扩展方面的相关研究较少,已有研究往往围绕知识表示模型开展,关注的是如何利用已有经验来解决故障诊断问题。在基于知识的故障诊断的相关研究文献中,文献[2]以空气压缩机为研究对象,研究了基于本体的故障诊断知识表示模型。文献[3]研究了用于风涡轮机故障诊断的知识表示模型。文献[4]研究了基于本体的机器健康管理模型,以实现对机器的健康状况预测。文献[5]研究了飞机副翼作动器综合故障诊断的知识表示模型。文献[6]研究了大型风力发电机组的故障诊断知识表示模型。文献[7]研究了旋转机械的故障诊断知识表示模型。文献[8]以滚齿机为研究对象,研究了滚齿机的故障诊断知识表示模型。由此可见,基于知识的故障诊断的相关研究文献中更多关注的是解决知识表示的问题,对知识的更新、扩展等方面未做详细深入的研究。而在实际应用中,若需要对知识进行扩展、更改等操作,往往需要依赖Protégé等工具,其操作过程复杂,极大地限制了知识的收集效率。

使用语义网技术可实现故障诊断知识的动态更新与扩展。语义网技术是知识管理领域的一项重要技术,其体现在使用可扩展标记语言(Extensible Markup Language, XML)、资源描述框架(Resource Description Framework, RDF)和本体(Ontology)3大技术来实现知识管理[9],文献[10-11]等基于本体研究了复杂产品设计的知识表示模型和知识管理模型等。由于本体强大的知识表示形式和关联推理机制,基于本体的模型俨然成为了新一代知识管理系统的自然选择。本体机制为知识的组织和描述提供了理论基础和技术保障。

目前,基于知识的故障诊断相关研究中研究了各类机械设备的故障诊断知识的知识表示和知识应用,虽然现有研究覆盖的机械设备的类型范围广,但是他们构建出来的知识表示模型往往扩展性差,且不同设备间的知识表示模型语义不统一。因此,要实现机床的故障诊断知识扩展,需要解决以下3方面问题:

(1)机床故障诊断知识模型构建困难,由于机床类型众多,难以针对各个类型的机床构建出语义一致且扩展性好的故障诊断知识模型。

(2)机床故障诊断知识实例添加和编辑困难,由于Protégé工具操作复杂且集成困难,难以针对机床故障诊断的领域知识进行大批量和高效率的添加和编辑。

(3)机床故障诊断知识收集与集成困难,难以对生产现场获取到的故障诊断知识进行收集和集中管理,且难以保证收集知识的语义一致性。

针对上述问题,本文提出一种应用语义网技术的机床故障诊断知识扩展方法,通过扩展一个核心机床故障诊断知识模型[12]来构建不同类型机床的故障诊断知识模型,通过批量导入知识实例来扩展知识库中的故障诊断知识实例;基于该方法设计了一种针对机床故障诊断知识模型构建、知识库实例扩展和分布式机床故障诊断知识收集的知识扩展平台框架,从而实现通过导入包含知识信息表格的方式高效率地构建故障诊断知识模型和扩展知识库实例,以及对收集到的分布式机床上传的故障诊断知识的语义一致性检查。

1 基于语义网的机床故障诊断知识扩展方法

知识扩展是知识管理过程中知识维护的一种方式。另外,知识表示也是知识管理的重要组成部分,知识表示规定了知识的组织形式和语义。知识维护中知识扩展的具体方式完全依赖于知识表示的具体形式,因此,一个语义信息完善、扩展性好的知识表示形式对于实现知识的扩展和动态更新十分重要。笔者之前提出的机床故障诊断知识表示模型(Ontology-based Knowledge Model of Fault Diagnosis of Machine Tools,OKM-MTFD)[12]具有完善的机床故障领域语义信息并且扩展性好。因此,本文基于OKM-MTFD开展机床故障诊断知识扩展方法的研究。

文献[12]的研究提出一种基于标准语义的机床故障诊断知识建模方法,并应用该方法构建了机床的基于本体的故障诊断知识模型(OKM-MTFD)。本文在文献[12]研究成果的基础上,考虑到故障诊断知识模型的应用过程中知识库难以扩展、知识收集效率低的问题,提出了本文所述的基于语义网的机床故障诊断知识扩展方法和应用该方法的知识扩展平台体系结构,以提升知识收集效率低问题。

文献[12]所提出的OKM-MTFD表示模型主要包含故障现象、故障原因和故障维修3方面的故障要素及其相关的故障要素属性等,如图1所示。OKM-MTFD表示模型中的故障要素等相关内容的具体说明参考文献[12]。

语义网技术是实现知识扩展的核心。在知识获取阶段,可通过人工整理或机器学习等多种方式从机床相关的文档和故障维修记录等资料中获取机床故障诊断的相关知识;在知识扩展阶段,获取到的知识分为两类:一类用于机床故障诊断知识模型的构建;另一类用于扩展机床故障诊断知识库,在知识的扩展过程中需要应用语义网技术完成故障诊断知识模型的生成和知识实例的扩展。最后,在知识应用阶段,可对已形成的故障诊断知识模型和扩展了知识实例的知识库进行知识应用。上述基于语义网的故障诊断知识扩展方法如图2所示。

(1)基于OKM-MTFD的机床故障诊断知识模型的构建方法

基于OKM-MTFD核心模型构建出的知识表示模型扩展性好且具有语义一致性。本文根据OKM-MTFD对故障诊断知识的需求,从某类型机床的资料和故障维修记录中获取故障诊断相关知识,并整理为表1所示形式。

表1 用于机床故障诊断知识模型构建的知识格式说明表

故障要素类型组织形式知识格式知识示例故障原因知识列表故障原因类型—故障原因名称机械类故障原因—松动故障现象本征类知识列表故障现象名称工作异常故障现象功能类知识列表功能类型名称—功能名称故障现象原因—电气类原因的故障现象故障维修本征类知识列表故障维修方式名称修复故障维修功能类知识列表功能类型名称—功能名称故障维修原因—电气类原因的故障维修故障原因属性知识列表故障原因属性类型名称—故障原因属性名称故障原因程度属性—严重故障现象属性知识列表故障现象属性类型名称—故障现象属性名称故障现象报警方法属性—软件报警故障维修属性知识列表故障维修属性类型名称—故障维修属性名称故障维修紧急度属性—非常紧急机床结构知识列表系统名称—子系统名称—子部件名称—零件名称滚齿机—传动系统—C轴—C轴伺服电机故障辅助属性知识列表故障辅助属性类型名称—故障辅助属性项目名称零件状态—打滑

表1中“组织形式”是指构建机床故障诊断知识模型的每类知识都以“列表”的形式进行组织,知识项则按照表 1中“知识格式”列所展示的格式存储到“列表”中。在表1中各项知识的列表中的每一项往往都包含一个层次关系,此处使用了一个预定义的“-”符号作为标示层次关系的分隔符。

通过解析表1中获取到的知识中的内容,可以得到知识节点的内容以及节点间的层次关系,这些节点和层次关系可以用于构建具有层次关系的语义网络。使用表1中的内容构建知识模型的基本过程如下:以故障原因知识为例,从故障原因知识列表中取出“机械类故障原因—松动”这一项,根据分隔符拆开,得到2个节点:“机械类故障原因”和“松动”,在语义网络中分别建立节点,若同名节点已存在,则跳过。重复上述操作,即可以将“机械类原因”及其所有子节点都建立出来。

在建立节点的过程中需要保证语义一致,因此,在建立节点时并不是直接使用“松动”这样的名称来建立节点,而是使用一个全局唯一的ID值,再使用“松动”作为这个节点的一个注解名称,以此解决语义一致性的问题。

使用表1中提供的知识构建机床故障诊断知识模型的具体过程如下:

1)建立OKM-MTFD核心模型中定义的“故障”根节点,以及“故障原因”、“故障现象”和“故障维修”等8类父节点和“故障维修”、“故障现象”紧密相关的“本征类”、“功能类”节点。

2)在OKM-MTFD定义的核心语义节点的基础上,扩展从知识表中获得的知识节点的内容并关联节点间的层次关系。

3)在语义网络中添加OKM-MTFD定义的故障要素、属性等之间的对象属性关系,OKM-MTFD定义的各项具体对象属性关系参见文献[12]的4.2.2节,最终形成基于OKM-MTFD的机床故障诊断知识的语义网络,该语义网络既是机床故障诊断的知识表示模型。

上述基于OKM-MTFD的机床故障诊断知识模型构建过程如图3所示。

(2)机床故障诊断知识库中知识实例的扩展方法

向基于OKM-MTFD构建获得的某类型机床故障诊断知识模型中添加实例后,即可形成该类型机床的故障诊断知识库。添加实例需要获取与实例相关的两方面信息:①实例的所属分类;②实例通过对象属性所关联的故障要素实例和故障要素属性实例。根据机床故障诊断实例这两方面信息的需求,将实例及与实例相关的信息表示为如表2所示的表格。表2中“实例类型”指实例所属的故障要素大类,“所属分类”指实例所属故障要素大类下的具体类别,“实例名称”即为该项实例的名称,“相关属性”、“相关部位”、“相关原因”、“相关现象”和“相关维修”指与该项实例具有对应对象属性关系的具体实例项名称。该类实例不需要包含的内容在表格中为“无”,例如“故障原因实例”不具有与“故障原因”相关的对象属性,因此“故障原因实例”对应的“相关原因”为“无”。

表2 用于机床故障诊断知识实例扩展的知识格式示例表

利用表2中的实例信息进行知识库的扩展主要包括实例个体的建立和对象属性的关联两个过程。将知识实例扩展到知识库中的过程如下:

1)依据实例所属故障要素大类和具体类别名称在知识模型中找到该类;

2)将实例个体节点添加到其所属的类下,使其成为该类的个体;

3)关联与该实例具有对象属性关系的实例。

上述机床故障诊断知识实例的扩展过程如图4所示。

2 机床故障诊断知识扩展平台体系结构

本文基于第1章所述机床故障诊断知识扩展方法,提出机床故障诊断知识扩展平台。该平台可将获取到的机床故障诊断知识高效的扩展到故障诊断专家系统的知识库中,极大地提升知识收集效率。本文所设计的机床故障诊断知识扩展平台的体系结构如图5所示。

(1)资源层 用于存储各类知识库并提供访问接口。主要包括机床故障诊断知识模型库、知识库以及SWRL规则库等。

(2)支撑技术层 用于提供支持机床故障诊断知识平台运行的各类插件。支撑技术层中的管理框架模块是机床故障诊断知识平台的基本框架,用于加载其他的功能模块,该基本框架具有良好的可扩展性、灵活性和可靠性;版本管理模块用于管理知识模型和知识库在运行中产生的不同版本;语义网工具包模块提供了语义网技术在实现层的各类应用程序接口,如网络本体语言(Web Ontology Language, OWL)操作、推理机、查询引擎等;简单对象访问协议(Simple Object Access Protocol, SOAP)和表述性状态传递(Representational State Transfer, REST) Web Service用于提供系统数据交互服务的功能接口。

(3)应用功能层 应用功能层是机床故障诊断知识扩展平台的核心层。库管理功能包括知识模型库管理、知识库管理和规则库管理,提供这3类库的新增、查看和删除功能;显示与查询提供知识模型和知识库的详细数据的显示和查询功能;知识模型构建功能是对第1章中知识模型的构建方法的实现,该功能提供手动新增和知识表导入两种方式的知识模型构建功能;机床知识实例扩展功能是对第1章中知识实例扩展方法的实现,该功能提供手动新增和知识表导入两种方式的知识实例扩展功能,以及收集分布式机床的知识实例的功能;分布式机床故障诊断知识收集模块提供本体接收和语义一致性检查的功能;系统管理模块提供用户配置功能。

(4)用户层 机床故障诊断知识平台的用户包括人员类和程序类。人员类用户指系统管理人员和知识工程师等角色,负责系统内容和功能的维护;程序类用户指故障服务平台、故障诊断系统和Web浏览器等程序,可使用系统部分功能和获取知识更新、上传新知识等。

机床故障诊断知识平台采用开放式架构设计,可后续增加功能模块完善功能。如对于知识获取来说,可通过平台功能模块的标准加载接口,实现具体应用机器学习或者大数据分析的知识获取模块,以实现对获取到的知识的快速集成。

3 机床故障诊断知识扩展技术

3.1 机床故障诊断知识模型构建技术

机床故障诊断知识模型的构建是对OKM-MTFD核心本体模型的扩展。OKM-MTFD核心模型定义了故障要素、故障要素属性及要素与属性之间的相互关系。故障要素和故障要素属性对应本体中的类(Class),要素与属性之间的关系对应本体中的对象属性(Object Property)。核心本体中定义了8个顶级类以及与类关联的对象属性。从第1章机床故障诊断知识扩展方法中可知,对知识模型的扩展是从相同的核心概念(OKM-MTFD)出发,构建不同类型机床的故障诊断知识模型。构建机床故障诊断知识模型的一个重要步骤是向OKM-MTFD核心本体模型添加某种类型机床特有故障要素类、故障要素属性类和关联要素之间的相互关系等。

故障要素子类和对象属性的添加都基于OWL公理。本体的基本建模元语包括类、关系、函数、公理以及实例。一个类的添加需要关联SubClass Of、Equivalent To和Disjoint With等相关关系。一个对象属性的添加需要关联SubProperty Of、Inverse Of、Domains和Ranges等相关关系。上述类和对象属性的每一个关系的描述都是一条公理,向本体中添加新的类与对象属性既是添加新的OWL公理。

故障要素子类和对象属性添加完成之后将自动进行故障要素和故障要素属性之间的对象属性关联。在向模型中添加新的故障要素和故障要素属性时,需要将要素与属性的对象属性关系同时添加到本体中,由于OKM-MTFD定义的故障诊断知识模型中不同要素概念间的对象属性是已经确定的,对象属性的添加不应受人工操作,而应当由机床故障诊断知识构建模块自动完成知识模型中对象属性的建立。

结合本体添加公理的特点与故障诊断知识模型故障要素与属性间对象属性约束关系的特点,本文设计了用于故障诊断知识模型扩展的Web服务端接口,如图6所示。

在服务端设计了用于完成机床故障诊断模型构建的功能接口,功能接口定义围绕添加类和对象属性的公理设计,服务端功能接口定义如表3所示。

表3 构建机床故障诊断知识模型的功能接口列表

接口类型接口形式接口说明故障要素类添加void CreateFaultCauseElement(ParentLabel, Label);接口功能:创建一个故障原因接口参数:ParentLabel:将要添加的故障原因的父节点的名称Label:将要添加的该节点的名称void CreateFaultPhenomenonElement(ParentLabel, Label);接口功能:创建一个故障现象接口参数:ParentLabel:将要添加的故障现象的父节点的名称Label:将要添加的该节点的名称void CreateFaultMaintenanceElement(ParentLabel, Label);接口功能:创建一个故障维修接口参数:ParentLabel:将要添加的故障维修的父节点的名称Label:将要添加的该节点的名称故障要素属性类添加void CreateFaultCauseAttribute(ParentLabel, Label);接口功能:创建一个故障原因属性接口参数:ParentLabel:将要添加的故障原因属性的父节点的名称Label:将要添加的该节点的名称void CreateFaultPhenomenonAttribute(ParentLabel, Label);接口功能:创建一个故障现象属性ParentLabel:将要添加的故障现象属性的父节点的名称Label:将要添加的该节点的名称void CreateFaultMaintenanceAttribute(ParentLabel, Label);接口功能:创建一个故障维修属性接口参数:ParentLabel:将要添加的故障维修属性的父节点的名称Label:将要添加的该节点的名称

续表3

在表3中多个接口都使用了Label这一参数,该参数在接口内将会被创建为一个注解(Annotation),该注解的国际化资源标识符(Internationalized Resource Identifiers, IRI)值的缩写形式为“rdfs:label”。

知识模型构建方法的3个步骤与表3中定义的功能接口的关系如下:

(1)在构建机床故障诊断知识模型的第一个过程中将生成语义模型核心的各个类,语义模型的核心类的语义是固定的,因此该过程可由实现的系统自动完成;

(2)在构建机床故障诊断知识模型的第二个过程中将扩展知识节点和建立层次关系,此时需要使用本小节给出的功能接口;

(3)在构建机床故障诊断知识模型的第三个过程中将关联对象属性关系,对象属性关系的语义也是固定的,因此该过程应当由实现的系统在创建新的属性后自动创建该对象属性,并绑定对象属性的作用域(Domains)和目标范围(Ranges)。

3.2 机床故障诊断知识库的扩展技术

机床故障诊断知识库的扩展即是向故障诊断知识库中添加实例。故障诊断实例包括故障诊断要素实例和故障诊断要素属性实例。例如,在故障诊断知识模型中有一故障现象要素为“抖动”,则“大立柱移动时有抖动”这一故障现象实例就应添加到故障现象要素“抖动”这一分类下。故障诊断实例的添加不仅是将故障要素实例添加到模型中,还需要对不同故障要素实例之间进行关联。例如,将“大立柱移动时有抖动”这一故障现象要素实例与故障现象要素属性实例“严重故障现象”和故障部位实例“大立柱”等进行关联。从3.1节可以知道,故障要素在本体中均为类,因此故障要素实例在本体中应为个体(Individual),不同个体之间使用对象属性进行关系的关联。由于故障诊断实例属于故障诊断要素和故障诊断要素属性,其必然遵守3.1节中建立的知识模型的要素与要素之间、要素与属性之间的关系约束。因此,只需要依据添加本体公理的特点进行操作即可完成故障诊断实例的添加。本文设计了用于故障诊断知识实例扩展的Web服务端接口,如图7所示。

故障诊断知识实例添加服务端的功能接口设计如表4所示。

表4中用于扩展知识实例的功能接口主要是针对第1章中知识实例扩展过程中的第2)步和第3)步,即添加实例与关联对象属性关系这两个步骤。知识实例扩展的第2)步添加实例为使用CreateIndividual(OWLClassIRI, Label)接口,该接口指定了新实例所属的类的IRI以及自身的“rdfs:label”注解。另一方面,通过对表4中实例扩展接口的封装和使用,可以直接通过知识表实现知识实例的批量添加。

表4 添加机床故障诊断知识实例的功能接口列表

知识实例的扩展增加了知识库中的知识量,可通过本体推理,进一步发现新增实例和知识库中已存在实例之间可能存在的知识关联关系,将知识库中蕴含的知识显示化。

在构建完成的故障诊断知识模型中添加故障诊断实例后形成了一个包含故障知识实例的本体。这时本体中包含的都是录入的公理,即故障要素之间的直接关系。使用本体工具OWLAPI集成的推理机HermiT Reasoner对本体进行推理后,导出本体为包含蕴含知识的推理后本体(Inferred Ontology)。推理前可以根据特殊需求导入SWRL(Semantic Web Rule Language)规则。使用规则可以更加定制化地发现蕴含的故障诊断知识。推理后的本体中除了包含录入的故障要素之间的直接关系,还包含依据录入的公理推理出的故障要素之间的间接关系,间接关系即为本体中的蕴含知识。这个推理后本体(Inferred Ontology)可用于故障诊断知识查询等应用。

3.3 分布式机床故障诊断知识收集技术

机床作为机床制造企业的产品,将会被销售给不同地区的不同制造企业,不同的地点和不同的企业构成了一个广域空间,机床制造企业所生产的机床分布式地位于这样的广域空间中。运行于广域空间的分布式机床数量多、工况差异大,其产生的知识差异大,因此对其进行知识收集十分困难。分布式机床故障诊断知识的收集可以通过以下两类方法进行:

(1)使用人工整理、机器学习、大数据分析等多种方法与途径对机床收集到的故障诊断记录进行知识获取;

(2)使用知识扩展平台直接对包含故障诊断实例的本体进行知识的收集和扩展。

通过第(1)类方法获取到的知识往往是以知识表的形式存在,知识表可通过知识扩展平台的实例扩展功能将知识集成到知识库中;第(2)类方法是由机床故障诊断知识扩展平台提供分布式机床故障诊断知识收集接口,然后机床使用该接口将包含故障诊断知识实例的本体上传到知识扩展平台。第(1)类方法描述的知识表的知识实例扩展可通过3.2节所描述的知识库扩展技术实现;第(2)类方法的知识收集技术将在本节进行说明。第(2)类方法描述的知识扩展平台提供的分布式机床故障诊断知识收集接口如表5所示。

表5 收集分布式机床的故障诊断知识

本文提出的收集分布式机床的故障诊断知识方法中,用于支持机床故障诊断知识上传到知识扩展平台的是运行在机床上的机床智能故障诊断系统[13]。该系统具有故障判断、故障查询、故障处理和维修指导等功能,同时也具有记录故障诊断实例的功能,故障诊断实例包括故障现象、故障原因、故障维修等相关故障要素。该系统可对记录的故障诊断实例进行简单知识分类,对于可进行分类的知识,系统会将其整合为包含故障诊断实例的本体,对于无法分类的知识,系统会将其保存为原始故障记录。

运行于机床上的机床智能故障诊断系统一方面将无法分类处理的原始故障记录上传至大数据平台,另一方面将分类后的包含故障诊断知识实例的本体上传至知识扩展平台。上传到大数据平台的故障诊断记录就会通过前文所述的第(1)类方法形成知识表,然后导入知识扩展平台。通过表5中的知识收集接口直接上传到知识扩展平台的包含故障诊断知识实例的本体,则会经过语义一致性检查后扩展实例到知识库。通过语义一致性检查可对这些直接上传本体的领域语义信息进行验证,若语义信息一致则知识实例可扩展入知识库,若实例的语义信息存在冲突或无法判别则需要交由知识工程师进行处理。上述分布式机床故障诊断知识收集方法如图8所示。

对上传到知识扩展平台的本体进行故障诊断领域语义信息的一致性检查非常重要。语义一致性检查主要是检查上传的本体中的知识实例与知识库中的知识实例是否存在无法识别和互斥等情况。语义不一致的情况可以分为两类:

(1)接收的本体中实例的分类在知识库中不存在。在机床故障诊断系统中故障处理人员在进行故障处理或故障维修时,可能会发现故障原因或故障维修或故障现象无法分类到向其提供的可选分类中,此时就会由该处理人员自己创建一个分类用来标识该故障要素。由此就出现了本体中某项实例的分类在知识库中不存在的情况。这种情况的知识实例的语义不一致是进行分布式机床故障诊断处理中最常见的情况。

(2)接收的本体中对象属性所关联的实例与知识库中该对象属性设定的作用域和目标范围不匹配。在OKM-MTFD核心本体中,每一项对象属性实例都定义了作用域(Domains)和目标范围(Ranges),如果在收集的本体中存在对象属性的这两项与知识库中的设定不匹配,则说明该对象属性的关联存在错误,其语义与知识库中知识的语义互斥。

针对上述两方面的语义不一致的具体检查规则如表6所示。

表6 语义一致性检查规则表

本文对机床上传的本体进行表6所示规则的语义一致性检查过程如图9所示。在检测流程中,如果出现与规则a)不符合的知识实例,则对该实例标记“分类待验证标记”,如果出现不符合规则b)的实例,则对该对象属性及其相关联的目标实例标记“对象属性关联错误标记”。最后将有“分类待验证标记”的实例交由知识工程师处理;将有“对象属性关联错误标记”的对象属性和实例列入语义一致性检测异常记录中;最后将剩下的未发现语义一致性问题的实例扩展到知识库中。

4 应用验证

4.1 系统实现框架

要实现机床故障诊断知识扩展平台,应该以语义网工具为核心,同时应包含用户交互界面和用于网络数据访问的数据传输接口。综合考虑,构建B/S(Browser/Server)架构的知识扩展平台将能满足上述两方面的要求。B/S架构的服务端(Server)可以使用SOAP/RESTful Web Service开发系统接口来进行系统数据的访问,使系统功能能够同时满足用户操作界面的需求以及机床终端系统数据交互的需求。根据以上需求,本文设计了知识扩展平台的实现框架,如图10所示。

图10展示了知识扩展平台B/S架构的构成方式,浏览器(Browser)和机床智能故障诊断系统可以访问系统的相关功能,服务端(Server)以语义网工具为核心构建用于支持机床故障诊断知识操作的相关功能,并通过实现的功能对机床故障诊断知识模型库和知识库进行管理。

本文的语义网工具选用了OWLAPI[14],在系统实现中使用OWLAPI开发实现了用于本体查询和修改的Entity Query和Axiom Assertion等功能。使用HermiT[15]推理机进行知识库的推理更新,通过添加SWRL规则,完善故障诊断实例间的关联关系。

本文基于OWLAPI的特性,以及对Web Service的需求,选用被广泛使用的Spring作为服务端开发的主体框架。使用Spring框架开发面向过程的SOAP接口,向机床终端系统提供知识应用和知识上传服务。通过开发面向资源的RESTful接口,向用户操作界面提供知识查看和编辑等服务。

为了保证浏览器端用户操作界面的使用体验和降低开发难度,本文选用React.js开发单页Web应用(Single Page Application,SPA),改善系统的使用体验,使本文的知识扩展平台Web应用具有计算机本地应用的使用体验。

4.2 扩展机床故障诊断知识模型

在第1章中给出的每项“故障要素类型”都是一个独立的知识表,此处为验证机床故障诊断知识模型构建方法的有效性,使用一个Excel文件来组织这些知识表,在Excel文件中使用多个不同的“工作表(sheet)”来记录机床故障诊断知识,每个工作表中的内容为每项故障要素的知识列表,将该文件上传导入到第2章所提出的知识扩展平台,即可完成一个机床知识模型的构建。

本文所定义的Excel模板由8个“工作表”组成:“故障原因知识表”、“故障原因属性知识表”、“故障现象知识表”、“故障现象属性知识表”、“故障维修知识表”、“故障维修属性知识表”、“故障部位知识表”和“故障辅助属性知识表”。每个“工作表”的表头都分别为“No.”、“rdfs:label”、“zmt:comment_chs”和“zmt:comment_english”,其含义分别为“序号”、“label名称注解”、“中文名称注解”和“英文名称注解”。这3列模版中定义需要列出的注解名称的虽然形式不同,但是其所表示的语义相同。原则上“rdfs:label”注解应尽量完整地表达一个类所表示的语义,“zmt:comment_chs”和“zmt:comment_english”则应尽量简洁。应用本文定义的Excel模版所实现滚齿机故障诊断知识表如图11所示。

以构建滚齿机的故障诊断知识模型为例,将通过扩展OKM-MTFD的核心要素(既故障原因、故障现象和故障维修等),构建出滚齿机的故障诊断知识模型。图11所示为使用本文所定义的模版整理出的滚齿机的故障诊断知识表。将该文件上传到第2章中提出的知识扩展平台,通过Excel文件解析程序统计表格中的数据,最后,依照各部分表格的语义和形式定义,按照第1章提出的机床故障诊断知识模型构建方法完成滚齿机故障诊断知识模型的构建。

解析过程中,Excel文档的每一个“工作表(sheet)”都将映射到OKM-MTFD核心模型的一个顶级类中,映射关系如图12所示。

将每个工作表中所包含的知识项扩展到OKM-MTFD定义的核心本体模型中的方式相同。以“故障原因知识表”这个为例,将图11中第12项的数据“机械类故障原因—松动”扩展到OKM-MTFD顶级类之一的“故障原因”类的过程如下:

(1)将“机械类故障原因—松动”拆分为“机械类故障原因”和“松动”两部分;

(2)将“机械类故障原因”关联为“故障原因”类的子类;

(3)将“松动”关联为“机械类故障原因”类的子类。

由此形成了“故障原因—机械类故障原因—松动”的一个层次关系。按照此过程将图11中“故障原因知识表”中的每一项都扩展到OKM-MTFD中的顶级类“故障原因”下就完成了滚齿机故障原因知识的扩展。

从图13和图14中可以看到从知识表格导入后构建出的故障要素和故障要素属性的层次结构。本文在4.1节提到建立的对象属性关系是由系统自动完成的,由于对象属性关系只有在扩展实例时才会显式使用,因此无法在知识模型构建的相关交互界面中反映对象属性关系的建立过程。

4.3 扩展机床故障诊断知识实例

实例扩展即是向知识库中添加实例个体。实例的扩展可从两方面进行:一是通过知识表导入实例;二是通过收集分布式机床上传的本体扩展实例。虽然知识实例获取方法不同,但两种方法向知识库中添加实例的过程相同。本节选择以知识表导入为例来验证实例扩展方法的有效性。

本节依据第1章中表示机床故障诊断知识实例信息的表格格式定义了如图15所示的实例表模板,该模板的表头同表2相同。在图15所示的实例知识表文件中包含了部分从某台滚齿机的故障维修记录中获取到的故障诊断实例知识。本节通过将该文件导入到知识扩展平台实现对滚齿机故障诊断知识库扩展的验证。

在扩展过程中,系统首先会将所有的实例个体都添加到知识库中,然后再进行实例间的对象属性关联,这样可以避免在批量导入过程中某项实例关联对象属性时另一项实例还未添加到知识库中而产生实例无法找到的问题。

如图16中所示,在知识扩展平台上传滚齿机故障诊断知识实例表并完成导入后即可在图17中查看到扩展到滚齿机故障诊断知识库中的知识实例。

在知识扩展平台的实例导入界面通过选择机床故障诊断知识模型中一项具体类,可查看到所属该类的所有实例个体的列表,再选择一项具体的个体项,可查看和编辑该项实例个体的注解名称和对象属性关系列表。

通过本节对知识库中实例的进一步扩展,将形成更丰富更细致的故障诊断信息描述。首先通过扩展获得了更多的故障诊断实例,更多的故障诊断实例意味着可识别和描述的故障数量变多;然后通过扩展获得了更多的新实例与旧实例间的关联关系,更多的关联关系意味着对于已有故障的描述变得更丰富和详细。因此通过知识库实例的扩展,可提高故障诊断能力。

5 结束语

本文提出一种基于语义网的机床故障诊断知识扩展方法,该方法包括基于OKM-MTFD核心本体构建不同类型机床的故障诊断模型和扩展已有机床故障诊断知识库中的实例。该方法摆脱了对传统知识编辑工具的依赖,实现了对获取到的机床故障诊断知识的高效收集。基于机床故障诊断知识扩展方法和关键技术,本文设计并开发了机床故障诊断知识扩展平台。使用知识扩展平台可构建各类型机床的故障诊断知识模型和扩展知识库实例以及对分布式机床产生的故障诊断知识进行收集,可极大地丰富该类型机床知识库的知识量,提高基于知识的机床故障诊断系统的诊断能力。目前故障记录多采用人工记录和描述,未来将研究自然语言处理技术在故障知识抽取和关系抽取方面的应用,提高知识扩展平台的知识获取能力。

猜你喜欢

知识库实例本体
眼睛是“本体”
基于TRIZ与知识库的创新模型构建及在注塑机设计中的应用
基于本体的机械产品工艺知识表示
高速公路信息系统维护知识库的建立和应用
基于Drupal发布学者知识库关联数据的研究
完形填空Ⅱ
完形填空Ⅰ
专题
Care about the virtue moral education
位置与方向测试题